找到官方参考文档
添加依赖
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
SpringServletContainerInitializer
- web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerIntializer
- 加载这个文件指定的类,SpringServletContainerInitializer
- Spring应用在启动时,会加载感兴趣的WebApplicationInitializer接口下的所有组件
- 并且为WebApplicationInitializer组件创建对象(组件不是接口,不是抽象类)
4-1)AbstractContextLoaderInitializer会创建根容器:
4-2) AbstractDispatcherServletInitializer注册dispatcherServlet(没有完全覆盖,会调用父类方法)
注册dispatcherServlet时干了什么?
4-2-1) 首先创建一个servlet的ioc容器
4-2-2) 创建dispatcherServlet然后添加到servletContext中,并且进行基本配置。
4-2-3)AbstractAnnotationConfigDispatcherServletInitializer,获取配置类,创建基于注解的WebIOC容器AnnotationConfigWebApplicationContext。
如何以注解方式来实现SpringMVC:
实现AbstractAnnotationConfigDispatcherServletInitializer即可!