Specificaţia CDI (Contexts and Dependency Injection) 1.1 introduce modul de descoperire implicit bean, având ca rezultat modificări de comportament şi performanţă de la implementarea Java Platform, Enterprise Edition (Java EE) 6 CDI 1.0 în WebSphere Application Server.
Această regulă semnalează folderul WEB-INF sau META-INF dacă proiectul nu conţine un fişier beans.xml. Când se mută de la Java EE 6 CDI 1.0 la Java EE 7 CDI 1.1 sau ulterior, descoperirea bean-ului implicit are ca rezultat scanarea de către runtime a tuturor fişierelor JAR şi WAR, chiar dacă acestea nu au un fişier beans.xml. Acest lucru poate duce la degradarea performanței de descoperire a boabelor dacă activați cdi-1.2 caracteristică pe Liberty.
În Java EE 7, dacă nu este definit niciun fişier beans.xml, runtime-ul scanează automat după adnotări de definire bean (bean-defining). Pentru a dezactiva acest comportament, adăugaţi un fişier beans.xml cu modul de descoperire bean setat la none, după cum se arată în următorul exemplu.
<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>
Pe Liberty, puteţi dezactiva de asemenea acest comportament prin adăugarea următoarei proprietăţi la fişierul server.xml.
<cdi12 enableImplicitBeanArchives="false"/>
Pe WebSphere Application Server tradiţional, acest comportament poate fi dezactivat în următoarele moduri:
enableImplicitBeanArchives la false dezactivează paşii de scanare legaţi de adnotare CDI
pentru arhive care nu conţin un descriptor de bean cum ar fi fişierul beans.xml.
enableCDI la false, dezactivează toţi paşii CDI. Această valoare
ar trebui să fie setată la false dacă nu este nevoie de CDI la nivel de server .
Pentru informaţii suplimentare despre setarea acestor proprietăţi în WebSphere tradiţional, vedeţi documentaţia Proprietăţi personalizate pentru îmbunătăţirea pornirii aplicaţiei în WebSphere Application Server.
Pentru informaţii suplimentare despre implementarea Java EE 7 CDI 1.2, vedeţi Contexts and Dependency Injection 1.2 behavior changes.