记录一下今天使用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时出现解析不了的占位符进行忽略掉。

posted @ 2019-05-08 21:06  不爱笑青年  阅读(855)  评论(0编辑  收藏  举报