我想向我的Java应用程序添加Web界面,以便可以使用HTTP来操纵它的状态。
我为启动嵌入式Tomcat的某些类添加了Spring bean。此类当然可以访问创建它的上下文。但是我想以某种方式将此上下文存储在Tomcat类(org.apache.catalina.startup.Tomcat)中,以便以后可以在Servlet中检索它,以便可以执行以下操作:
public SomeClass extends extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ApplicationContext appContext = getContextStoredEarlierInTomcatClass();
SomeBeanFromContext sbfc = appContext.getBean("sbfc", ApplicationContext.class);
sbfc.setSomeProperty(newValue);
}
}
知道如何实现吗?
谢谢!
最佳答案
包括Servlet在内的类不需要ApplicationContext
即可获取对String bean的引用。这是使用依赖注入完成的
@Controller
@RequestMapping("/mypage")
public class SomeClass {
@Autowired
private SomeBeanFromContext sbfc;
@RequestMapping(value = "/individualRequest", method = RequestMethod.GET)
public String doIndividualRequest(HttpServletRequest request) {
sbfc.setSomeProperty(newValue);
...
}
}
Spring MVC提供了一种使用
@Controller
带注释的类将bean注入目标Web控制器类的完整方法。