1.ContextLoaderListener
1.1.ContextLoaderListener源码
public class ContextLoaderListener extends ContextLoader implements ServletContextListener {
...
}
ServletContextListener源码:
public interface ServletContextListener extends EventListener {/**
web容器启动后,调用
**/
public default void contextInitialized(ServletContextEvent sce) {
}
/**
web容器关闭时调用,web将要关闭,还未关闭
**/
public default void contextDestroyed(ServletContextEvent sce) {
}
}
ContextLoader: 用于spring 容器初始化类
public class ContextLoader {
...
}
1.2.流程
文章图片
2.springBoot方式 2.1.流程
【Spring ApplicationContext启动方式】
文章图片
2.2.ServletWebServerApplicationContext
springboot在执行SpringAppliction.run方法时,创建的ApplicationContext是ServletWebServerApplicationContext,
改context实现了 AbstractApplicationContext.onRefresh方法,在onRefresh方法中创建了相应的web容器。
推荐阅读
- Spring中@Schedule和@Async注解实现细粒度定时任务
- Spring认证中国教育管理中心-Spring Data Elasticsearch教程二
- 微服务注册中心
- Spring IoC
- 谈谈我自己理解的Spring为什么一定要用三级缓存
- (为什么在 Spring 的配置里,最好不要配置 xsd 文件的版本号)