您的位置:首页 > 编程语言 > Java开发

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

2018-01-09 11:51 856 查看
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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: