CDI Bean访问Spring bean?

ber*_*tie 4 spring cdi jsf-2

我知道这听起来很奇怪,将CDI(Weld)和Spring混合为控制器.

但想象一下这种情况:

  1. 使用CDI,我可以使用@ConversationScoped,这是我的要求之一(到目前为止,我不知道我是否可以使用spring作为这种范围,因为如果可以的话,我可以用Spring取代Weld, faces-config.xml中的el-resolver)
  2. 我的服务对象(@Service)和DAO(@Repository)将由Spring管理

现在出现的一个问题是,在我的控制器中,我如何访问我的服务对象?

我觉得这样的事情不会起作用:

@Named
@ConversationScoped
public class MyBean {
   @Named
   private SomeOtherBeanManagedByCDI myOtherBean; // this will work

   @Autowired
   private MySpringBean mySpringBean; // dont think that this will work

   ....
}
Run Code Online (Sandbox Code Playgroud)

关于如何在cdi bean中使用spring bean的任何想法?谢谢 !


更新

我刚刚测试了这篇文章的解决方案,到目前为止它工作正常,我感到宽慰.

谢谢 !

str*_*erg 5

Rick Hightower编写了一个很好的扩展库,它支持将Spring bean注入CDI bean,反之亦然:

http://rick-hightower.blogspot.com/2011/04/cdi-and-spring-living-in-harmony.html