4

我在这里阅读了一篇关于 Java EE 应用服务器的 Wikipedia 文章:

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?如果他们这样做,对任何人来说都重要吗?

4

2 回答 2

3
  • JSR-330 定义了一组注释 ( javax.inject),它们将在不同的依赖注入框架中使用。该规范由 Rod Johnson(来自 Spring)和 Bob Lea(来自 Google Guice)领导
  • (部分)由于规范线索,spring 和 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 WeldApache OpenWebBeansResin CanDI

javax.enterprise.inject所以,回答你的问题 -和 spring之间没有直接关系。

于 2010-06-07T07:41:17.060 回答
2

Spring 确实支持 JSR-330 的 @Inject - 它可以用来代替 @Autowired(除了它没有required属性)。

您还需要在类路径中有 JSR 330 jar。

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-autowired-annotation

于 2010-06-07T05:45:01.597 回答