Spring Boot源码(一):去除web.xml

访问https://spring.io/

Spring Boot源码(一):去除web.xml_第1张图片

 

 

 Spring Boot源码(一):去除web.xml_第2张图片

 

 

 spring boot中:

public class MyWebApplicationInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletCxt) {

        // Load Spring web application configuration
        AnnotationConfigWebApplicationContext ac = new AnnotationConfigWebApplicationContext();
        ac.register(AppConfig.class);
        ac.refresh();

        // Create and register the DispatcherServlet
        DispatcherServlet servlet = new DispatcherServlet(ac);
        ServletRegistration.Dynamic registration = servletCxt.addServlet("app", servlet);
        registration.setLoadOnStartup(1);
        registration.addMapping("/app/*");
    }
}

 

在原来的spring mvc中web.xml:

<web-app>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>

    <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>/WEB-INF/app-context.xmlparam-value>
    context-param>

    <servlet>
        <servlet-name>appservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>param-value>
        init-param>
        <load-on-startup>1load-on-startup>
    servlet>

    <servlet-mapping>
        <servlet-name>appservlet-name>
        <url-pattern>/app/*url-pattern>
    servlet-mapping>

web-app>

参考官方文档:

 

它的作用就是注册和初始化DispatcherServlet

其中:


        app
        class>org.springframework.web.servlet.DispatcherServletclass>
        
            contextConfigLocation
            
        
        1
    

    
        app
        /app/*
    

 

而spring boot中的这四句代码与上面一样:

Spring Boot源码(一):去除web.xml_第3张图片

 

 不过web.xml中还可以向容器中注入三大组件,servlet,filter,listener

可以通过@WebServlet,@WebFilter,@WebListener注解方式注入。

不过spring boot中用的是SPI来注入,关于怎么注入,下篇再说。

Spring Boot源码(二):SPI去除web.xml

 

你可能感兴趣的:(Spring Boot源码(一):去除web.xml)