如何使用Spring将会话bean注入POJO

时间:2009-12-31 05:35:18

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

我有一个实现Local接口的EJB 3.0 Session Bean,我也有一个纯粹的POJO。

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

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

要将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(如果可用)。或者,您可以选择为这些注释激活单个BeanPostProcessors。

另请参阅Spring论坛上的Spring support for @EJB annotations: example?

答案 1 :(得分:1)

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

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