La spécification Contexts and Dependency Injection (CDI) 1.1 a introduit le mode de reconnaissance de bean implicite, ce qui entraîne des changements de comportement et de performances par rapport à l'implémentation CDI 1.0 par Java Platform, Enterprise Edition (Java EE) 6 dans WebSphere Application Server.
Cette règle marque le dossier WEB-INF ou META-INF si le projet ne contient pas de fichier beans.xml. Lors du passage de Java EE 6 CDI 1.0 à Java EE 7 CDI 1.1 -ou version ultérieure), la reconnaissance de bean implicite entraîne que tous les fichiers WAR et JAR sont analysés par l'environnement d'exécution, même s'ils n'ont pas de fichier beans.xml. Cela peut entraîner une dégradation des performances de la reconnaissance de bean si vous activez la cdi-1.2 sur Liberty.
Dans Java EE 7, si aucun fichier beans.xml n'est défini, l'environnement d'exécution recherche automatiquement des annotations de définition de bean. Pour désactiver ce comportement, ajoutez un fichier beans.xml avec mode de reconnaissance de bean défini à 'none', comme illustré dans l'exemple suivant.
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="none" version="1.1">
</beans>
Dans Liberty, vous pouvez également désactiver ce comportement en ajoutant la propriété ci-dessous au fichier server.xml.
<cdi12 enableImplicitBeanArchives="false"/>
Dans WebSphere Application Server Traditional, ce comportement peut être désactivé d'une des manières suivantes :
enableImplicitBeanArchives
désactive les étapes d'analyse des annotations liées à la spécification CDI pour les archives qui ne contiennent pas de
descripteur de bean, tel que le fichier beans.xml.
enableCDI désactive toutes les étapes CDI. Cette valeur
doit être false si aucune spécification CDI n'est requise au niveau serveur.
Pour plus d'informations sur la définition de ces propriétés dans WebSphere Traditional, voir la documentation Custom Properties for improving application startup in WebSphere Application Server.
Pour plus d'informations sur l'implémentation Java EE 7 CDI 1.2, voir Changements de comportement dans Contexts and Dependency Injection 1.2.