spring boot程序启动时读取&覆盖配置文件中的变量

1. 自定义ApplicationContextInitializer,spring启动时会执行自定义的initialize方法

new SpringApplicationBuilder(DsgCoreApplication.class).
                initializers(new MyPropertyInitializer()).
                run(args);
@Slf4j
public class MyPropertyInitializer implements ApplicationContextInitializer {
    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
}
}

2. 读取变量

ConfigurableEnvironment environment = applicationContext.getEnvironment();
String etcdUrl = environment.getProperty("etcd.etcd-urls");

3. 覆盖变量

Map map = new HashMap<>();
map.put("nats.nats-urls", natsAddress);
environment.getPropertySources().addFirst(new MapPropertySource("manualProps", map));

你可能感兴趣的:(spring,boot,java,前端)