spring - CDI Bean 访问 Spring bean?

标签 spring jsf-2 cdi

我知道这听起来很奇怪,为 Controller 混合了 CDI(焊接)和 Spring。

但是想象一下这种情况:

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

    现在出现的一个问题是,在我的 Controller 内部,我如何访问我的服务对象?

    我认为这样的事情行不通:
    @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 的解决方案,到目前为止它运行良好,我感到如释重负。

    谢谢 !

    最佳答案

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

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

    关于spring - CDI Bean 访问 Spring bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5510144/

    相关文章:

    java - 在混合租赁上下文中生成 EntityManager

    java - 不受 Spring 管理的域对象上的 AspectJ 切入点表达式

    java - 从 -D 变量设置 Spring 单元测试配置文件

    java - JSF 2.0 在整个 session 期间从浏览器和以编程方式设置语言环境

    jsf-2 - DefaultInstanceManager无法访问带有修饰符 ""的类的成员

    java - PAX-CDI : CdiContainerFactory and BundleTracker

    java - Spring Boot 的 Spring Security 默认凭据是什么?

    java - .jdbc4.MySQLIntegrityConstraintViolationException : Cannot add or update a child row: a foreign key constraint fails during signup and registration

    java - 是否有任何生产质量的 JSF 2 实现?

    java - 启动 ejb bean 不工作