Spring中读取properties的方式

第一种 PropertyPlaceholderConfigurer

这种方式使用${}的占位符进行属性的获取。可在xml中注入,也可以在代码中使用@Value注解注入。需要注意的是@Value的方式的bean,必须也是注解方式被spring加载的。
下面是三种写法:

  • 第一种写法为第二种的简便写法,spring封装的自定义标签。


    image.png
  • 第二种


    Spring中读取properties的方式_第1张图片
    image.png
  • 第三种写法,自己继承了PropertyPlaceholderConfigurer,好处是可以在代码中通过编码的方式获取spring加载的properties的属性值
Spring中读取properties的方式_第2张图片
image.png
Spring中读取properties的方式_第3张图片
image.png

这样就可以在代码中通过静态方法获取properties的值。例如:config.getProerty("name")。还有一些用法,比如重写loadProperties()方法,可以通过数据库,或者配置中心等读取配置到spring中,然后通过${}的方式使用等等

第二种 PropertiesFactoryBean

这种方式使用#{id.xxx}或者#{id['xxx']}的方式取值。id为创建bean的id。

  • 第一种写法


    image.png
  • 第二种写法


    Spring中读取properties的方式_第4张图片
    image.png

总结一下:
PropertiesFactoryBean 集成PropertiesLoaderSupport,实现了FactoryBean, 专门用来管理properties文件的工厂bean,默认是单例的。是以bean的方式来管理properties。

而 PropertyPlaceholderConfigurer 是 解决 properties 文件占位符问题的,也实现了 PropertiesLoaderSupport 类。它是以spring上下文的方式管理properties。

你可能感兴趣的:(Spring中读取properties的方式)