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

 2019-10-17 21:53  阅读(5092)
文章分类:Spring boot
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)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Spring boot加载外部配置文件-EnvironmentPostProcessor

相关推荐