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);
}
}