我有一些服务,我想从使用工厂改为使用依赖注入框架。
使用Java 6+是否有一种“标准”方式可以在不使用第三方库的情况下实现这一目标? CDI(上下文和依赖注入)是否适用于这种情况?
例子会很棒!我已经开始使用Guice,它“似乎”很简单,但它目前导致了问题,因此我正在寻找其他选择。
答案 0 :(得分:1)
DI和CDI是在Java标准JSR299和JSR330中定义的。任何支持这些标准的DI框架都可以。对于CDI来说,这将是Weld-SE,对于DI,你可以坚持使用guice,为我服务。
答案 1 :(得分:0)
你的问题有点广泛。当你说“Java 6+”时,我希望你的意思是JavaEE 6;因为Java SE 6不提供没有第三方库的本机DI。
在Java EE空间中,@ManagedBean
注释应该作为所有DI需求的标准。任何使用@ManagedBean
注释的内容(来自javax.annotation.ManagedBean
都是符合条件的注射目标,也有资格注入其他豆类。
例如,JAX-RS类本身不是合格的注入目标。向其添加@ManagedBean
使其有资格注入EJB,资源和其他上下文好东西