这是在Web应用程序的上下文中。我的Impl类具有JAX-WS
注释,而@Autowired
注释不起作用。
检索自动装配对象时出现空指针异常。
找到解决方案,两者都可以工作:
扩展SpringBeanAutowiringSupport
并保持@Autowired
批注完整。
使用WebApplicationContextUtils
来获取WebapplicationContext
加载豆的位置。此上下文中的getBean()给了我所需的bean。
现在,SpringBeanAutowiringSupport
类的文档在NOTE中说
“如果有明确的访问ServletContext的方法,则首选使用此类而不是使用此类。WebApplicationContextUtils类允许轻松访问基于ServletContext的Spring根Web应用程序上下文。”
这是什么意思?在我的Web应用程序中,我没有使用任何servlet。我的Web应用程序也不是唯一的JAX-WS
应用程序。这是一个同时具有SOAP/REST webservices
和EJBs
的Web应用程序。
首选哪种方法,为什么?请帮忙。
最佳答案
Spring docs中提到了扩展SpringBeanAutoWiringSupport作为首选方法。因为您不必从Web上下文显式访问Bean,所以此方法不是更好吗?
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/remoting.html#remoting-web-services