CDI(Contexts and Dependency Injection) 1.1 스펙에서 내재적 Bean 검색 모드가 도입되었으며 그 결과 WebSphere Application Server의 Java EE(Java Platform, Enterprise Edition) 6 CDI 1.0 구현에서와 다르게 동작 및 성능이 변경되었습니다.
이 규칙은 프로젝트에 beans.xml 파일이 없는 경우 WEB-INF 또는 META-INF 폴더에 플래그를 지정합니다. Java EE 6 CDI 1.0에서 Java EE 7 CDI 1.1 이상으로 이동하는 경우, 내재적 Bean 검색으로 인해 런타임이 모든 WAR 및 JAR 파일을 스캔합니다(beans.xml 파일이 없는 WAR 및 JAR 파일도 포함). 이로 인해 다음을 사용하는 경우 Bean 발견 성능이 저하될 수 있습니다. cdi-1.2 Liberty의 기능.
Java EE 7에서는 beans.xml 파일이 정의되어 있지 않는 경우 런타임이 자동으로 Bean 정의 어노테이션에 대해 스캔합니다. 이 동작을 사용하지 않으려면 다음 예제에 설명된 바와 같이 Bean 검색 모드가 none으로 설정된 beans.xml 파일을 추가하십시오.
<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>
Liberty에서도 다음 특성을 server.xml 파일에 추가하여 이 동작을 사용 안하므로 설정할 수 있습니다.
<cdi12 enableImplicitBeanArchives="false"/>
WebSphere Application Server Traditional에서는 이 동작을 다음 방법으로 사용 안함으로 설정할 수 있습니다.
enableImplicitBeanArchives 사용자 정의 특성을 false로 설정하면 beans.xml 파일과 같은
Bean 디스크립터를 포함하지 않는 아카이브에 대한 CDI 관련 어노테이션 스캐닝 단계를 사용 안함으로 설정합니다.
enableCDI 사용자 정의 특성을 false로 설정하면 모든 CDI 단계를 사용 안함으로 설정합니다. 서버 레벨에서
CDI가 필요하지 않은 경우 이 값을 false로 설정해야 합니다.
WebSphere Traditional에서 이러한 특성을 설정하는 방법에 대한 자세한 정보는 Custom Properties for improving application startup in WebSphere Application Server 문서를 참조하십시오.
Java EE 7 CDI 1.2 구현에 대한 자세한 정보는 Contexts and Dependency Injection 1.2 동작 변경사항을 참조하십시오.