Spring初始化
来源:互联网 发布:管道保温计算软件 编辑:程序博客网 时间:2024/06/08 18:21
一.配置监听器
为了让web容器启动时,也初始化Spring,则需要在web.xml中配置监听器ContextLoaderListener,web容器启动时触发监听器,初始化Spring
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
二.概述
1. ContextLoaderListener继承了ContextLoader,ContextLoader中有静态代码块
public class ContextLoaderListener extends ContextLoader implements ServletContextListener {}
创建一个子类实例(new XxxClass()),执行过程:父类静态代码块—>子类静态代码块—>主方法(执行哪个程序就执行哪个程序的主方法)—>父类非静态代码块—>父类无参构造函数—>子类非静态代码块—>子类无参构造函数(若实际子类执行的是有参构造函数,则不执行无参构造函数)—>成员函数(指定执行哪个就执行哪个成员函数,若重写了父类成员函数,则只执行子类的成员函数)2. 所以在创建ContextLoaderListener实例时,先执行了父类ContextLoader中的静态代码块:
/** * 类路径资源的名称(相对于ContextLoader类) * 定义了ContextLoader的默认策略名称。 */private static final String DEFAULT_STRATEGIES_PATH = "ContextLoader.properties";// 记录了Spring上下文的默认实现类:XmlWebAppliactionContextprivate static final Properties defaultStrategies;// 静态代码块在类加载时加载static {// 从属性文件加载默认策略实现。try {ClassPathResource resource = new ClassPathResource(DEFAULT_STRATEGIES_PATH, ContextLoader.class);defaultStrategies = PropertiesLoaderUtils.loadProperties(resource);}catch (IOException ex) {throw new IllegalStateException("Could not load 'ContextLoader.properties': " + ex.getMessage());}}
key: org.springframework.web.context.WebApplicationContext
value: org.springframework.web.context.support.XmlWebApplicationContext
参数defaultStrategies用于没有在web.xml中配置Spring上下文的实现类,就会从defaultStrategies获取默认的上下文实现类
三.Spring上下文创建过程
阅读全文
0 0
- spring初始化
- Spring初始化
- Spring初始化
- Spring初始化
- Spring初始化
- Spring初始化
- Spring初始化
- Spring初始化
- spring初始化容器
- Spring配置初始化ApplicationContext
- Spring的初始化
- 初始化Log4J(spring勿用)
- spring工具-- 配置文件初始化.
- spring配置初始化applicationcontext
- spring 初始化顺序
- Spring 没有初始化错误
- Spring Bean 初始化过程
- spring初始化配置加载
- Machine Learning----Regression(2)
- haproxy.cfg配置详解
- Android中的事件分发(上)
- 文件上传与下载
- 关于解决工程编译出现Undefined symbol __use_two_region_memory 和Undefined symbol __initial_sp的问题
- Spring初始化
- CRC循环冗余码
- 【Linux】进程间的关系以及终端的概念
- 人生不是只有努力就够了
- LK概览
- redis哨兵模式使用lua脚本实现分布式锁
- 使用sql生成UUID
- 线程控制
- python3编程入门(1)-算术、字符串与变量