使用ServletContainerInitializer时,web.xml&lt; <env-entry>标记的等价物是什么?</env-entry>

时间:2014-07-21 18:39:55

标签: java spring spring-mvc servlet-3.0 spring-java-config

我正在尝试使用从Spring的WebApplicationInitializer扩展的基于代码的类替换我的web.xml文件。我的web.xml文件有几个“env-entry”元素。我试图找出如何在我的WebApplicationInitializer类中设置这些,但没有运气。也许有人知道这些代码的代码相当吗?

public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        XmlWebApplicationContext appContext = new XmlWebApplicationContext();
        appContext.setConfigLocation("WEB-INF/springmvc-servlet.xml");

        Dynamic servlet = servletContext.addServlet("springmvc", new DispatcherServlet(appContext));
        servlet.setLoadOnStartup(1);
        servlet.addMapping("/*");

        //How do I add this?
        //  <env-entry>
        //      <env-entry-name>logback/configuration-resource</env-entry-name>
        //      <env-entry-type>java.lang.String</env-entry-type>
        //      <env-entry-value>logback.xml</env-entry-value>
        //  </env-entry>    
    }
}

2 个答案:

答案 0 :(得分:3)

您可以使用以下

手动将变量绑定到JNDI上下文
InitialContext context = new InitialContext();   //initialize a new JNDI context
context.addToEnvironment("logback/configuration-resource","logback.xml)"; //add a new named entry

答案 1 :(得分:0)

接受的答案对我不起作用。一段时间后,我最终找到了一个解决方案并将其发布到类似的堆栈溢出帖子中,并包括在此处以防对任何人有帮助:

https://stackoverflow.com/a/66109551/2441088