第一种 PropertyPlaceholderConfigurer
这种方式使用${}的占位符进行属性的获取。可在xml中注入,也可以在代码中使用@Value注解注入。需要注意的是@Value的方式的bean,必须也是注解方式被spring加载的。
下面是三种写法:
-
第一种写法为第二种的简便写法,spring封装的自定义标签。
-
第二种
- 第三种写法,自己继承了PropertyPlaceholderConfigurer,好处是可以在代码中通过编码的方式获取spring加载的properties的属性值
这样就可以在代码中通过静态方法获取properties的值。例如:config.getProerty("name")。还有一些用法,比如重写loadProperties()方法,可以通过数据库,或者配置中心等读取配置到spring中,然后通过${}的方式使用等等
第二种 PropertiesFactoryBean
这种方式使用#{id.xxx}或者#{id['xxx']}的方式取值。id为创建bean的id。
-
第一种写法
-
第二种写法
总结一下:
PropertiesFactoryBean 集成PropertiesLoaderSupport,实现了FactoryBean, 专门用来管理properties文件的工厂bean,默认是单例的。是以bean的方式来管理properties。
而 PropertyPlaceholderConfigurer 是 解决 properties 文件占位符问题的,也实现了 PropertiesLoaderSupport 类。它是以spring上下文的方式管理properties。