我正在阅读维基百科关于Java EE应用服务器的文章:
http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Java_EE_5_certified
它说Java App Services实现的2个API是:
javax.enterprise.inject
javax.enterprise.context
这些都与应用程序上下文和依赖注入JSR-299有关。我之前从未听说过这些API。 Spring是否实现了这些API?如果他们这样做对任何人都重要吗?
答案 0 :(得分:3)
javax.inject
),这些注释将在不同的依赖注入框架中使用。该规范由Rod Johnson(来自Spring)和Bob Lea(Google Guice)这是Spring使用的JavaEE的一部分。
JSR-299使用了同一套,由JBoss的Gavin King领导。但是,JSR-299(也称为CDI)使用javax.enterprise.inejct/context
并且是一个全新的依赖注入框架。它基于spring,guice和seam的思想,但正式指定为JSR,旨在覆盖许多极端情况以及与其他JavaEE部件的平滑集成。
JSR-299定义了API和SPI,因此可以开发具体的实现。目前的实施是JBoss Weld,Apache OpenWebBeans和Resin CanDI。
所以,回答你的问题 - javax.enterprise.inject
和春天之间没有直接关系。
答案 1 :(得分:2)
Spring确实支持JSR-330的@Inject - 它可以用来代替@Autowired(除了它没有required
属性)。
您还需要在类路径上安装JSR 330 jar。