在基于Spring获取properties文件属性值的时候,一般使用@Value的方式注入配置文件属性值,但是总是需要引入这些多余的变量,有点不爽,今天研究了下,基于Spring解析@Value的方式,使用EmbeddedValueResolverAware解析配置文件,实现起来也很简单

工具类如下:

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

}

使用:

@Autowired
private PropertiesUtil propertiesUtil;

String s = propertiesUtil.getPropertiesValue("test.hello");

不同于读取静态文件的方式,这种方式能加载类似于 test.hello = ${test.a}/${test.b}的属性值

相关文章:

  • 2022-03-07
  • 2022-02-04
  • 2021-07-22
  • 2022-01-15
  • 2021-07-09
  • 2022-12-23
猜你喜欢
  • 2022-02-08
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-10-24
相关资源
相似解决方案