通常我们在servlet中使用Spring上下文如下
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
SomeBean someBean = (SomeBean) ctx.getBean("someBean");
但是在使用注释声明的REST服务中实际上并不是servlet。所以我们没有得到getServletContext()
如何处理?
答案 1)通过将context作为参数传递给方法
@GET
@Path("/create")
@Produces(MediaType.TEXT_PLAIN)
public String createCustomer(@Context ServletContext servletContext){
2)其他解决方案是使用ApplicationContextAware 解释here
答案 0 :(得分:0)
要获取应用程序上下文,您可以使用服务实现ApplicationContextAware
。然后,当创建服务时,Spring将调用setApplicationContext
方法为您提供应用程序上下文。在该方法中,您可以存储提供的上下文以供以后使用。