java.lang.IllegalArgumentException: Could not resolve placeholder 'XXX' in string value "${XXX}"


錯誤產生原因:

在Spring的配置文件中配置了多個<context:property-placeholder>標簽

1、什么是<context:property-placeholder >:

<context:property-placeholder>標簽提供了一種優雅的外在化參數配置的方式,不過默認情況下該標簽在Spring配置文件中只能存在一份!!!

2、<context:property-placeholder >的用途:

本地文件:

 在Spring的配置文件中配置:

3、使用:

1).在配置文件中使用

 2).在Java代碼中使用(先引入,后使用)

然后就可以在需要該參數的地方使用了。

錯誤產生的根本原因:

        Spring容器是采用反射掃描的發現機制,通過標簽的命名空間實例化實例,當Spring探測到容器中有一個org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurer的Bean就會停

對剩余PropertyPlaceholderConfigurer的掃描,即只能存在一個實例!然后你在其它地方引用你配置的第二個<context:property-placeholder>中的值就會報錯。

解決方案

1.將多個配置文件合並為一個

配置:

2.更改配置:

在每一個<context:property-placeholder>標簽后面都加上 ignore-unresolvable="true" 

3.更改配置:

location可以包含多個文件,之間用逗號分隔

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM