W specyfikacji CDI (Contexts and Dependency Injection) w wersji 1.1 wprowadzono tryb wykrywania niejawnych komponentów bean, który powoduje zmiany działania i wydajności w stosunku do implementacji specyfikacji CDI 1.0 na platformie Java Platform, Enterprise Edition (Java EE) 6 używanej na serwerze WebSphere Application Server.
Ta reguła powoduje oznaczenie folderu WEB-INF lub META-INF, jeśli projekt nie zawiera pliku beans.xml. Przy przechodzeniu ze środowiska Java EE 6 CDI 1.0 do środowiska Java EE 7 CDI 1.1 lub nowszego wykrywanie niejawnych komponentów bean skutkuje skanowaniem wszystkich plików WAR i JAR w czasie wykonywania, nawet jeśli nie mają one pliku beans.xml. Może to prowadzić do obniżenia wydajności wykrywania komponentów bean, jeśli zostanie włączone cdi-1.2 Liberty.
W środowisku Java EE 7, w którym nie zdefiniowano pliku beans.xml, środowisko wykonawcze przeprowadza automatyczne skanowanie w poszukiwaniu adnotacji definiujących komponenty bean. Aby wyłączyć to działanie, należy dodać plik beans.xml z trybem wykrywania komponentów bean ustawionym na wartość none, jak to pokazano w poniższym przykładzie.
<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>
Na serwerze Liberty można również wyłączyć to działanie, dodając następującą właściwość do pliku server.xml.
<cdi12 enableImplicitBeanArchives="false"/>
W przypadku serwera WebSphere Application Server traditional działanie to można wyłączyć w następujące sposoby:
enableImplicitBeanArchives na wartość false powoduje wyłączenie etapów skanowania adnotacji związanych z CDI w przypadku archiwów, które nie zawierają deskryptora komponentu bean, takiego jak plik beans.xml.
enableCDI na wartość false powoduje wyłączenie wszystkich etapów CDI. Wartość false należy ustawić, jeśli na poziomie serwera działanie specyfikacji CDI nie jest wymagane.
Więcej informacji na temat ustawiania tych właściwości na serwerze WebSphere traditional można znaleźć w dokumentacji Właściwości niestandardowe usprawniające uruchamianie aplikacji na serwerze WebSphere Application Server.
Więcej informacji na temat implementacji Java EE 7 CDI 1.2 można znaleźć na stronie Zmiany w działaniu specyfikacji Contexts and Dependency Injection 1.2.