参考:PropertyPlaceholderConfigurer读取属性文件使用详解
总结:
1、是什么
PropertyPlaceholderConfigurer 是个 bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor 接口的一个实现。
2、作用
在 Spring 中,使用 PropertyPlaceholderConfigurer 可以在 XML 配置文件中加入外部属性文件,当然也可以指定外部文件的编码。
PropertyPlaceholderConfigurer 可以将上下文(配置文件)中的属性值放在另一个单独的标准 java Properties 文件中去。
在 XML 文件中用 ${key} 替换指定的 properties 文件中的值。这样的话,只需要对 properties 文件进行修改,而不用对 XML 配置文件进行修改。
3、例子
3.1、编写 jdbc.properties 文件
# jdbc.properties 文件
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456
3.2、在 XML 中引入外部文件,即 .properties 文件
如果引入单个 .properties 文件
jdbc.properties
UTF-8
如果引入多个 .properties 文件
classpath:jdbc.properties
classpath:redis.properties
classpath:test.properties
3.3、引入外部文件后,就可以在 XML 中用 ${key} 替换指定的 properties 文件中的值,通常项目中都会将 jdbc 的配置放在 properties 文件中
3.4、也可以在代码中引用
@Value("${REDIS_HASH_KEY}")
private String REDIS_HASH_KEY;
4、为简化 PropertyPlaceholderConfigurer 的使用,Spring 提供了 元素,
启用它后,开发者便不用配置 PropertyPlaceholderConfigurer 对象了。
注:spring 容器中最多只能定义一个 ,否则会报错:Could not resolve placeholder XXX
引入单个文件
引入多个文件
也可以使用通配符*



