Contexts and Dependency Injection (CDI) 1.1 規格引進隱含的 Bean 探索模式,導致 Java Platform Enterprise Edition (Java EE) 6 CDI 1.0 實作在 WebSphere Application Server 中的行為和效能變更。
如果專案不包含 beans.xml 檔案,則此規則會標示 WEB-INF 或 META-INF 資料夾。從 Java EE 6 CDI 1.0 移至 Java EE 7 CDI 1.1 或更新版本時,隱含的 Bean 探索導致所有 WAR 和 JAR 檔案由執行時期掃描,即使它們沒有 beans.xml 檔案亦然。如果您在 Liberty 中啟用 cdi-1.2 特性,這會導致 Bean 探索效能降低。
在 Java EE 7,如果未定義 beans.xml 檔案,執行時期會自動掃描 Bean 定義註釋。若要停用此行為,請新增 beans.xml 檔案,並將 Bean 探索模式設為 none,如下面的範例所示。
|
在 Liberty 中,您也可以透過將下列內容新增至 server.xml 檔來停用此行為。
|
在 WebSphere Application Server Traditional 上,此行為可以透過下列方式來停用:
enableImplicitBeanArchives 自訂內容設為 false,可以為不含 beans.xml 檔等 Bean 描述子的保存檔停用 CDI 相關的註釋掃描步驟。enableCDI 自訂內容設為 false,可以停用所有 CDI 步驟。如果伺服器層次上不需要 CDI,則此值應該設為 false。如需在 WebSphere Traditional 中設定這些內容的相關資訊,請參閱 用於在 WebSphere Application Server 中改進應用程式啟動的自訂內容文件。
如需 Java EE 7 CDI 1.2 實作的相關資訊,請參閱 Contexts and Dependency Injection 1.2 行為變更。