Spring boot加载外部配置文件-EnvironmentPostProcessor

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】
    package com.spring4all.config;

    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.Properties;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.env.EnvironmentPostProcessor;
    import org.springframework.core.env.ConfigurableEnvironment;
    import org.springframework.core.env.PropertiesPropertySource;
    import org.springframework.stereotype.Component;
    /**
     * 使用EnvironmentPostProcessor加载外部配置资源
     * 1.实现EnvironmentPostProcessor接口,重写postProcessEnvironment方法
     * 2.在META-INF下创建spring.factories 
     * @author Bowin
     *
     */
    @Component
    public class MyEnvironmentPostProcessor  implements EnvironmentPostProcessor{

        @Override
        public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
            try(InputStream input = new FileInputStream("E:\\ds.properties")) {
                Properties properties = new Properties();
                properties.load(input);
                PropertiesPropertySource propertySource = new PropertiesPropertySource("ve", properties);
                environment.getPropertySources().addLast(propertySource);
                System.out.println("====加载外部配置文件完毕====");
            } catch (Exception e) {
                e.printStackTrace();
            }

        }

    }
    org.springframework.boot.env.EnvironmentPostProcessor=com.spring4all.config.MyEnvironmentPostProcessor

外部配置文件:ds.properties

    ds.url=111
    ds.name=root
    ds.password=123456
    ds.driver=oracle

测试

    package com.spring4all;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ConfigurableApplicationContext;
    import org.springframework.core.env.ConfigurableEnvironment;
    /**
     * 启动测试
     * @author Bowin
     *
     */
    @SpringBootApplication
    public class Application{

        public static void main(String[] args) {
            ConfigurableApplicationContext run = SpringApplication.run(Application.class, args);
            String property = run.getEnvironment().getProperty("ds.password");
            System.out.println(property);

        }

    }

来源:[]()

赞(0) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » Spring boot加载外部配置文件-EnvironmentPostProcessor

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏