我有一个EJB 3.0会话Bean,它实现了Local接口,并且我也有一个纯POJO。如何使用Spring将会话bean注入POJO
我该如何注入一个会话Bean到POJO中,而不是手动JNDI通过弹簧查找POJO(使用@Resource
和SpringBeanAutowiringInterceptor
)?
有没有办法做到这一点?
我有一个EJB 3.0会话Bean,它实现了Local接口,并且我也有一个纯POJO。如何使用Spring将会话bean注入POJO
我该如何注入一个会话Bean到POJO中,而不是手动JNDI通过弹簧查找POJO(使用@Resource
和SpringBeanAutowiringInterceptor
)?
有没有办法做到这一点?
要将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?。
一种选择是使用诗名的LocalStatelessSessionProxyFactoryBean
,它创建一个指向JNDI上会话EJB的spring bean代理。然后,您可以使用通常的Spring接线技术将此代理连接到POJO中。代理bean将实现与EJB相同的本地接口。