WebApplicationInitializer中的web.xml属性

时间:2015-01-10 14:00:19

标签: java spring jndi spring-boot

有一种方法可以代替web.xml

public class Dispatcher implements WebApplicationInitializer{

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException{
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContext.class);
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }

}

但是如果使用JNDI连接,则必须将此文件粘贴到web.xml中:

<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/cms</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref> 

我们如何在public void onStartup(ServletContext servletContext) throws ServletException{ ... }方法?????

中实现此web.xml属性

1 个答案:

答案 0 :(得分:1)

AFAIK在Servlet 3 Java API中没有替换<resource-ref/>,因此您必须使用“web.xml”。对于大多数此类API缺陷,您可以在容器本机API(Tomcat等)中找到嵌入式容器的内容,但在这种情况下,这样做没有任何意义,因为重点是消耗由一个非嵌入式容器。