【问题标题】:How to inject session bean into a POJO using Spring如何使用 Spring 将会话 bean 注入 POJO
【发布时间】:2010-12-31 08:13:00
【问题描述】:

我有一个 EJB 3.0 会话 Bean,它实现了本地接口,我也有一个纯 POJO。

如何将会话 Bean 注入 POJO,而不是通过 spring 手动 JNDI 查找 POJO(使用 @ResourceSpringBeanAutowiringInterceptor)?

有什么办法吗?

【问题讨论】:

    标签: java spring jakarta-ee ejb-3.0 ejb


    【解决方案1】:

    要将 EJB3 注入 POJO(可能是 since Spring 2.5),我认为您应该使用 @EJB 而不是 @Resource。引用Spring EJB and JPA(通读,有很多例子):

    别忘了补充:

    <context:annotation-config/>
    

    它允许在 bean 类中检测各种注解:Spring 的 @Required@Autowired,以及 JSR 250 的 @PostConstruct@PreDestroy@Resource(如果可用)、JAX-WS 的 @WebServiceRef (如果可用)、EJB3 的 @EJB(如果可用)和 JPA 的 @PersistenceContext@PersistenceUnit(如果可用)。或者,您可以选择为这些注释激活单独的 BeanPostProcessor。

    还可以查看 Spring 论坛上的 Spring support for @EJB annotations: example?

    【讨论】:

      【解决方案2】:

      一种选择是使用富有诗意的LocalStatelessSessionProxyFactoryBean,它创建一个spring bean 代理,指向JNDI 上的会话EJB。然后,您可以使用通常的 Spring 连接技术将此代理连接到您的 POJO。代理 bean 将实现与您的 EJB 相同的本地接口。

      有关示例,请参阅 this section of the Spring manual

      【讨论】:

        猜你喜欢
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 2013-06-25
        • 1970-01-01
        • 2011-12-29
        • 2015-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多