我想向我的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控制器类的完整方法。

10-08 16:29