package com.ldj.cloud.user;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import org.springframework.core.env.MutablePropertySources;
import java.util.HashMap;
import java.util.Map;
/**
* User: ldj
* Date: 2024/5/7
* Time: 13:22
* Description: Spring容器刷新之前执行的一个回调函数,是在ConfigurableApplicationContext#refresh() 之前调用
*/
@SpringBootApplication
public class UserApplication implements ApplicationContextInitializer<ConfigurableApplicationContext> {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(UserApplication.class, args);
System.out.println("===============================");
System.out.println(applicationContext.getEnvironment().getProperty("customProperty"));
System.out.println("===============================");
}
@Override
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
//自定义属性资源
Map<String, Object> map = new HashMap<>();
map.put("customProperty", "自定义属性");
//通过自动配置上下文获取环境对象
ConfigurableEnvironment environment = configurableApplicationContext.getEnvironment();
MutablePropertySources propertySources = environment.getPropertySources();
propertySources.addLast(new MapPropertySource("mapPropertySource", map));
}
}