我有一些服务想从使用工厂更改为使用依赖注入框架。
使用 Java 6+ 是否有一种“标准”方式可以在不使用第三方库的情况下实现这一点?CDI(上下文和依赖注入)是否适用于这种情况?
例子会很棒!我已经开始使用“看似”简单的 Guice,但它目前正在引起问题,因此我正在寻找其他选择。
我有一些服务想从使用工厂更改为使用依赖注入框架。
使用 Java 6+ 是否有一种“标准”方式可以在不使用第三方库的情况下实现这一点?CDI(上下文和依赖注入)是否适用于这种情况?
例子会很棒!我已经开始使用“看似”简单的 Guice,但它目前正在引起问题,因此我正在寻找其他选择。
DI 和 CDI 在 Java 标准 JSR299 和 JSR330 中定义。任何支持这些标准的 DI 框架都可以。对于 CDI,这将是 Weld-SE,对于 DI,您可以坚持使用 guice,这对我很有帮助。
你的问题有点笼统。我希望您说“Java 6+”时指的是 JavaEE 6;因为 Java SE 6 不提供没有 3rd 方库的本地 DI。
在 Java EE 空间中,@ManagedBean
注释应该作为所有 DI 需求的标准。@ManagedBean
任何用(from注释的东西javax.annotation.ManagedBean
都是符合条件的注入目标,也有资格被注入到其他 bean 中。
例如,一个 JAX-RS 类本身并不是一个合格的注入目标。添加@ManagedBean
到它使其有资格注入 EJB、资源和其他上下文好东西