记录一下今天使用maven构建项目分多个模块时遇到的扫描properties问题
复制别人的文章,自己也试了一下,确实有效,也有点收获,记录一下
<context:property-placeholder>
标签提供了一种优雅的外在化参数配置的方式,不过该标签在Spring配置文件中只能存在一份
当Spring探测到容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描,
即只能存在一个实例
同个模块中如果出现多个context:property-placeholder ,location properties文件后,运行时出现Could not resolve placeholder 'key' in string value${key1}。
原因是在加载第一个context:property-placeholder时会扫描所有的bean,
而有的bean里面出现第二个 context:property-placeholder引入的properties的占位符${key2},
但此时还没有加载第二个property-placeholder,所以解析不了${key2}。
解决办法一,可以将通过模块的多个property-placeholder合并为一个,将初始化放在一起。
方法二,添加ignore-unresolvable="true",这样可以在加载第一个property-placeholder时出现解析不了的占位符进行忽略掉。