Specifikace CDI (Contexts and Dependency Injection) 1.1 zavedla implicitní režim zjišťování objektů typu bean, což vedlo ke změnám chování a výkonu z implementace Java Platform, Enterprise Edition (Java EE) 6 CDI 1.0 na serveru WebSphere Application Server. Implicitní objekt typu bean je libovolný archiv, který obsahuje jednu nebo několik tříd objektů typu bean s anotací definující objekt typu bean nebo s jedním či více objekty session bean.
Při přechodu z formátu Java EE 6, CDI 1.0 na Java EE 7 CDI 1.1 nebo novější jsou výsledkem zjišťování implicitních objektů bean všechny soubory WAR a JAR procházené běhovým prostředím, a to i v případě, že nemají soubor beans.xml. Toto procházení představuje změnu chování z prostředí Java EE 6 CDI 1.0, kde chybí soubor beans.xml, který zabrání procházení archivů v aplikaci.
Toto pravidlo značí následující anotace definující objekt typu bean a objekty Enterprise JavaBeans (EJB) session bean ve všech souborech WAR a JAR, které nemají soubor beans.xml.
Binární skener aplikace značí třídy anotací, které jsou anotovány jako @NormalScope. Na rozdíl od zdrojového skeneru aplikací založených na platformě Eclipse nezjišťuje třídy, které jsou anotovány s použitím běžné anotace typu rozsahu. Tyto anotace mohou být označeny mimo rozsah souborů beans.xml, které je používají buď explicitně, nebo implicitně.
Chcete-li tuto změnu chování CDI zakázat za běhu na úrovni WAR nebo JAR, přidejte soubor beans.xml s režimem zjišťování objektu typu bean nastaveným na hodnotu none, jak je uvedeno v následujícím příkladu.
|
Na serveru Liberty můžete toto chování také zakázat přidáním následující vlastnosti do souboru server.xml.
|
Další informace o implementaci Java EE 7 CDI 1.2 viz Změny chování Contexts and Dependency Injection 1.2.