【问题标题】:Embedded Tomcat 7 passing Spring application context to servlets嵌入式 Tomcat 7 将 Spring 应用程序上下文传递给 servlet
【发布时间】:2013-06-21 18:32:08
【问题描述】:

我想为我的 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);
            }    
    }

知道如何实现吗?

谢谢!

【问题讨论】:

    标签: java spring tomcat servlets


    【解决方案1】:

    包括 Servlet 的类不需要 ApplicationContext 来获取对字符串 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 控制器类的完整方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2014-07-27
      • 2014-08-24
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      相关资源
      最近更新 更多