代码之家  ›  专栏  ›  技术社区  ›  Mike Flynn

从拦截器中的MessageContext获取Servlet上下文

  •  0
  • Mike Flynn  · 技术社区  · 11 年前

    如何从拦截器中提供的MessageContext中获取Servlet上下文的对象? 下面的TODO假设是一个Servlet上下文。

    @Override
    public boolean handleRequest(MessageContext messageContext, Object endpoint)
            throws Exception {
    
        WebApplicationContext applicationContext =
                WebApplicationContextUtils.getWebApplicationContext(TODO);
                TestIdentitiesService service = applicationContext.getBean(TestIdentitiesService.class);
    
    2 回复  |  直到 11 年前
        1
  •  2
  •   VirtualTroll    11 年前

    您可以尝试以下操作:

    @Autowired
    private ServletContext context;
    
    @Override
    public boolean handleRequest(MessageContext messageContext, Object endpoint)
            throws Exception {
    
        WebApplicationContext applicationContext =
                WebApplicationContextUtils.getWebApplicationContext(context);
        TestIdentitiesService service =
        applicationContext.getBean(TestIdentitiesService.class);
    
        2
  •  1
  •   ikumen    11 年前

    您应该能够获得具有以下内容的Servlet上下文:

    messageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT);