类似于Spring中针对非EJB的EJB连接

时间:2009-07-29 09:31:48

标签: java spring java-ee spring-annotations

我最近注意到,如果我使用@Interceptors(SpringBeanAutowiringInterceptor.class)注释ejb,那么spring可以为我连接我的ejb。我从来没有真正这样做过,所以不知道细节。

我想知道,有没有办法让它与其他种类的bean一起使用,例如@WebService注释的那些。

目前在我的Web服务类中(因为应用程序服务器管理它们)我必须从BeanFactory加载依赖项,因此更愿意让它们自动装配。

我知道我可以使用@Configurable批注但不是特别热衷于必须在VM上指定和代理。

这可能吗?

2 个答案:

答案 0 :(得分:3)

Spring再一次想到了这个用例,并为它提供了帮助!

问题是@WebService不是 spring 注释,它是 JAX-WS 注释,因此使用@WebService注释的类将作为Web公开服务不是由spring管理的,但它们的生命周期由JAX-WS管理。

处理这种情况的方法是让JAX-WS托管bean扩展org.springframework.web.context.support.SpringBeanAutowiringSupport - 这将启用@Autowire注释,例如,在此bean中工作。有关详细信息,请参阅here

答案 1 :(得分:1)

是的,当然。 Spring中有@ WebService,@ Repository,@ Controller,@ Service,@ Endpoint和其他注释。这是一个example