【Spring Boot 源码学习】初识 ConfigurableEnvironment
ConfigurableEnvironment 是Spring框架中环境配置的一个接口,它定义了Spring应用程序运行时的环境,包括配置属性、活动配置文件、属性源等。
以下是一个简单的示例,展示如何在Spring Boot应用程序中使用ConfigurableEnvironment:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.MapPropertySource;
import java.util.HashMap;
import java.util.Map;
public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
Map<String, Object> map = new HashMap<>();
map.put("my.custom.property", "Hello, World!");
MapPropertySource propertySource = new MapPropertySource("myCustomPropertySource", map);
environment.getPropertySources().addLast(propertySource);
}
}
在这个例子中,我们创建了一个实现了EnvironmentPostProcessor
接口的类MyEnvironmentPostProcessor
。在postProcessEnvironment
方法中,我们向环境的ConfigurableEnvironment
添加了一个新的MapPropertySource
,这个MapPropertySource
包含了一个自定义的属性my.custom.property
。
要使用这个EnvironmentPostProcessor
,你需要将其放置在类路径上,例如在src/main/resources/META-INF/spring.factories
文件中:
org.springframework.boot.env.EnvironmentPostProcessor=com.example.MyEnvironmentPostProcessor
当Spring Boot应用程序启动时,它会自动检测并应用这个EnvironmentPostProcessor
,从而添加了一个新的自定义属性。
评论已关闭