我知道这听起来很奇怪,将CDI(Weld)和Spring混合为控制器。
但想象一下这种情况:
现在出现的一个问题是,在我的控制器中,我如何访问我的服务对象?
我觉得这样的事情不会起作用:
@Named
@ConversationScoped
public class MyBean {
@Named
private SomeOtherBeanManagedByCDI myOtherBean; // this will work
@Autowired
private MySpringBean mySpringBean; // dont think that this will work
....
}
关于如何在cdi bean中使用spring bean的任何想法?谢谢!
我刚刚从this article测试了解决方案,到目前为止一切正常,我感到宽慰。
谢谢!
答案 0 :(得分:5)
Rick Hightower编写了一个很好的扩展库,它支持将Spring bean注入CDI bean,反之亦然:
http://rick-hightower.blogspot.com/2011/04/cdi-and-spring-living-in-harmony.html
答案 1 :(得分:2)
OP中仍然有一个很好的接受答案和一些好的编辑,但我认为还有时间指出Seam Spring模块。
答案 2 :(得分:1)
此外,如果您尝试在一系列页面中管理状态,并希望对Struts或JSF或Spring MVC进行有效的会话管理,那么Spring Web Flow可以提供您所需要的内容,并提供流量范围内的bean在流量持续时间内生活,或多或少等同于Seam / CDI中的对话。如果您想要一个更长寿命的流量管理解决方案,Activiti SPring模块可以简化配置一些在过程范围内生存的bean,类似于Seam对jBPM的功能。