1.
2.
```java
package com.example.demo.initializer;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.annotation.Order;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import java.util.HashMap;
import java.util.Map;
// 定义顺序
@Order(1)
// 自定义类实现系统初始化器的接口
public class MyIApplicationInitializer implements ApplicationContextInitializer {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
// 获取环境
ConfigurableEnvironment environment = applicationContext.getEnvironment();
// 自定义属性
Map<String,Object> map=new HashMap<>();
map.put("系统初始化器","我是自定的系统初始化器");
MapPropertySource myIApplicationInitializer = new MapPropertySource("MyIApplicationInitializer", map);
// 获取属性集 并且添加进属性集
environment.getPropertySources().addLast(myIApplicationInitializer);
System.out.println("run MyIApplicationInitializer");
}
}
org.springframework.context.ApplicationContextInitializer=com.example.demo.initializer.MyIApplicationInitializer
@RestController
public class TestController {
@Resource
private ApplicationContext applicationContext;
@RequestMapping("/test")
public String sayHello(){
return Optional.ofNullable("hello").orElse("fail");
}
// 测试自定义系统初始化器是否注册成功
@RequestMapping("/getMyApplicationContext")
public String getMyApplicationContext(){
String value = applicationContext.getEnvironment().getProperty("系统初始化器");
System.out.println(value);
return value;
}
}
结果: