首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDI访问Spring?

CDI访问Spring?
EN

Stack Overflow用户
提问于 2011-04-01 07:04:37
回答 3查看 3.9K关注 0票数 4

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

但想象一下这种情况:

  1. 使用CDI,我可以使用@ConversationScoped,这是我的要求之一(到目前为止,我还不知道是否可以将Spring用于这种作用域,因为如果可以,我可以用faces-config.xml中的el-解析器替换Weld )
  2. 我的服务对象(@Service)以及DAO(@Repository)将在Spring之前管理

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

我认为这样的事情行不通:

代码语言:javascript
复制
@Named
@ConversationScoped
public class MyBean {
   @Named
   private SomeOtherBeanManagedByCDI myOtherBean; // this will work

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

   ....
}

对于如何使用cdi中的spring,有什么想法吗?谢谢!

更新

我刚刚测试了来自这篇文章的解决方案,到目前为止,它运行得很好,我感到放心了。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-24 22:57:34

编写了一个不错的扩展库,它支持将Spring注入CDI,反之亦然:

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

票数 5
EN

Stack Overflow用户

发布于 2011-09-29 20:13:38

在OP中仍然有一个很好的被接受的答案和一些好的编辑,但是我认为仍然有时间指出接缝弹簧模块。

票数 2
EN

Stack Overflow用户

发布于 2011-09-29 21:46:55

另外,如果您试图跨一系列页面管理状态,并且希望Struts或JSF或Spring能够有效地进行会话管理,那么Spring提供了您所需要的内容,并提供了在流的持续时间内存在的流作用域bean,大致相当于Seam / CDI中的会话。如果您想要一个更长时间的流程管理解决方案,Activiti SPring模块使配置一些在流程作用域持续时间内的bean变得非常简单,类似于Seam为jBPM提供的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5510144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档