CDI explora buscando beans implícitos cuando no hay ningún archivo beans.xml

La especificación CDI (Contexts and Dependency Injection) 1.1 introdujo la modalidad de descubrimiento de beans implícitos, lo que da lugar a cambios de comportamiento y rendimiento de la implementación de Java Platform, Enterprise Edition (Java EE) 6 CDI 1.0 en WebSphere Application Server.

Esta regla marca la carpeta WEB-INF o META-INF si el proyecto no contiene un archivo beans.xml. Al mover de Java EE 6 CDI 1.0 a Java EE 7 CDI 1.1 o posterior, el descubrimiento de beans implícitos da como resultados la exploración por parte del tiempo de ejecución de todos los archivos WAR y JAR, incluso si no tienen un archivo beans.xml. Esto puede provocar una degradación del rendimiento del descubrimiento de beans si habilita el cdi-1.2 característica en Liberty.

En Java EE 7, si no se ha definido ningún archivo beans.xml, el tiempo de ejecución explora automáticamente buscando anotaciones de definición de beans. Para inhabilitar este comportamiento, añada un archivo beans.xml con modalidad de descubrimiento de bean establecido en none, tal como se muestra en el ejemplo siguiente.


<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>

En Liberty, también puede inhabilitar este comportamiento añadiendo la siguiente propiedad en el archivo server.xml.


<cdi12 enableImplicitBeanArchives="false"/>

En WebSphere Application Server tradicional, este comportamiento se puede inabilitar de las maneras siguientes:

Para obtener más información acerca de cómo establecer estas propiedades en WebSphere tradicional, consulte la documentación Custom Properties for improving application startup in WebSphere Application Server.

Para obtener más información sobre la implementación de Java EE 7 CDI 1.2, consulte Cambios de comportamiento de Contexts and Dependency Injection 1.2.