不用@Value从Spring的ApplicationContext中获取一个或全部配置

获取一个配置:

applicationContext.getEnvironment().resolvePlaceholders("${propertyKey}"); // 方法1
applicationContext.getEnvironment().getProperty("propertyKey"); // 方法2

获取properties配置文件的配置:

ConfigurableEnvironment env = (ConfigurableEnvironment) applicationContext.getEnvironment();
MutablePropertySources propertySources = env.getPropertySources();
Iterator<PropertySource<?>> iterator = propertySources.iterator();
while (iterator.hasNext()) {
	PropertySource<?> propertySource = iterator.next();

	if (propertySource instanceof PropertiesPropertySource) {
		System.out.println(propertySource.getProperty("propertyKey"));
		// 用propertySource.getSource()  可以获取全部配置
	}
}

正常实现EnvironmentAware, 即可让spring容器自动注入Environment

原文地址:https://www.cnblogs.com/lanhj/p/8574297.html