目录
一、ApplicationContextInitializer
1、自定义类,实现ApplicationContextInitializer接口
2、在META-INF/spring.factories配置文件中配置自定义类
1、自定义类,实现ApplicationListener接口
2、在META-INF/spring.factories配置文件中配置自定义类
四、InitializingBean/DisposableBean
一、ApplicationContextInitializer
IOC容器对象创建完成后执行,可以对上下文环境做一些操作,例如运行环境属性注册等。
使用
1、自定义类,实现ApplicationContextInitializer接口
public class MyApplicationContextInitializer implements ApplicationContextInitializer {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
//给上下文context对象注入环境属性
//1.准备属性
Map<String, Object> myMap = new HashMap<>();
myMap.put("applicationName","big-event");
//2.获取属性资源管理对象
ConfigurableEnvironment environment = applicationContext.getEnvironment();
MutablePropertySources propertySources = environment.getPropertySources();
//3.注册
propertySources.addLast(new MapPropertySource("myMap",myMap));
}
}
2、在META-INF/spring.factories配置文件中配置自定义类
# 接口全路径名称=自定义类的全路径名称 ctrl+alt+空格自动补全
org.springframework.context.ApplicationContextInitializer=com.zxy.initializer.MyApplicationContextInitializer