java - 在 CDI 实现项目中包含空 beans.xml 的目的是什么?

标签 java jsf-2 cdi ejb-3.1 jboss-weld

我正在使用 weld ,CDI 的 RI 作为我的 JSF-EJB-JPA 网络应用程序中的依赖项注入(inject)组件。我在我的项目中看到 META-INF/beans.xml 中有空 beans.xml在ejb.jarWEB-INF/beans.xml在我的 war 中。我不明白为什么我们需要留空 beans.xml当该文件中没有任何定义时?

最佳答案

CDI 需要在启动时扫描 bean 存档的所有类并触发一系列事件,因为几乎所有类都自动成为托管 bean(阅读更多 here ),即使它没有任何注释.

这会产生相当大的开销,特别是对于不打算包含任何 bean 的 jar 文件,因此通过包含 beans.xml 来显式指示应该扫描哪些 bean 文件是有益的。 .

关于java - 在 CDI 实现项目中包含空 beans.xml 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18131206/

相关文章:

java - Apache Tomcat/JBoss EJBInvokerServlet/JMXInvokerServlet (RMI over HTTP) 编码对象远程代码执行

java - 使用 Saxp 读取和 hibernate 保存大型数据库时 Netbean 没有响应

java - JSF 2.0 - 使用 AJAX 动态加载时不调用 Primefaces ActionListeners

forms - JSF 2.0 使用 IncludeViewParams 提交表单(忽略空参数)

jakarta-ee - JSF 页面未从 CDI bean 检索变量

java - Spring RestTemplate getForObject 获取 404

java - 填充和导入 Excel 电子表格的 UI 替代方案

tomcat - 异常找不到工厂 : javax. faces.application.ApplicationFactory

java - Wildfly 9 JMS 注入(inject)未发生

java - 如果混合使用 SessionScoped 和 Stateless 方法调用,事务会发生什么情况