我有一個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相同的本地接口。