Spring acquire properties based file property value, the general use @Value way injection profile property values, but always need to introduce these extra variables, a bit uncomfortable, the study today at Spring-based analytical @Value way, using EmbeddedValueResolverAware parsing the configuration file, it is also very simple to achieve
Tools are as follows:
@Component
public class PropertiesUtil implements EmbeddedValueResolverAware {
private StringValueResolver resolver;
@Override
public void setEmbeddedValueResolver(StringValueResolver resolver) {
this.resolver = resolver;
}
/**
* 获取属性,直接传入属性名称即可
* @param key
* @return
*/
public String getPropertiesValue(String key) {
StringBuilder name = new StringBuilder("${").append(key).append("}");
return resolver.resolveStringValue(name.toString());
}
}
use:
@Autowiredprivate PropertiesUtil propertiesUtil;
String s = propertiesUtil.getPropertiesValue("test.hello");不同于读取静态文件的方式,这种方式能加载类似于 test.hello = ${test.a}/${test.b}的属性值
This switched https://www.cnblogs.com/winkey4986/p/7001173.html