Java 关于@Inject-in-CDI/Weld和DI/Guice的信息
我正试图辨别CDI和DI之间的(一些)区别 CDI(JSR-299)在@Inject方面带来了什么 CDI@Injects(就像DI)是真的吗?然而,它所注入的内容的生命周期与某些上下文/范围有关。如果在使用@Inject时某个对象存在于某个作用域中,则会得到该对象在其声明的上下文/作用域中存在的实例。如果一个不存在,将创建一个新的 因此,当您希望确保获得所注入对象的正确实例时。ie@injectmyobject myObj;将获取会话范围内的myObject实例(假设我已经对其进行了注释) 这是正确的吗?免责声明:我为Red Hat工作,我是CDI联合规范负责人。因此,我对CDI的了解可能比其他DI解决方案要好。也就是说,我会尽量给你一个客观的答案 是的,这是正确的 查看各自的API:Java 关于@Inject-in-CDI/Weld和DI/Guice的信息,java,dependency-injection,cdi,guice,jboss-weld,Java,Dependency Injection,Cdi,Guice,Jboss Weld,我正试图辨别CDI和DI之间的(一些)区别 CDI(JSR-299)在@Inject方面带来了什么 CDI@Injects(就像DI)是真的吗?然而,它所注入的内容的生命周期与某些上下文/范围有关。如果在使用@Inject时某个对象存在于某个作用域中,则会得到该对象在其声明的上下文/作用域中存在的实例。如果一个不存在,将创建一个新的 因此,当您希望确保获得所注入对象的正确实例时。ie@injectmyobject myObj;将获取会话范围内的myObject实例(假设我已经对其进行了注释) 这
- 及
@ApplicationScoped
bean中注入@RequestScoped
bean)。bean管理器将始终为您提供有关活动上下文的正确bean
CDI还有一个更新的版本,它是9个月前用JavaEE7发布的JSR346(CDI1.1)。它添加了一些关于bean生命周期控制的有趣内容。您可以在应用程序或服务器(其他服务器仍在使用其JavaEE7版本)中使用它,或者从servlet侦听器或JavaSE获取并引导CDI(如果您愿意自己进行集成)
现在我们正在开发1.2版,并为CDI2.0准备JSR提案
要了解更多关于CDI的信息,我建议您阅读(Weld是CDI参考实现),这是从用户角度对规范的一个很好的介绍 嗨,安托万,谢谢你花时间回答这个问题。回答得好。