原來的項(xiàng)目一直跑著沒有問題,今天突然想在原有項(xiàng)目的基礎(chǔ)上嗜价,加上redis進(jìn)行數(shù)據(jù)的緩存徽职,原來項(xiàng)目的架構(gòu)就是傳統(tǒng)的SSM框架枣抱,于是,大刀闊斧的開始改裝了蚊惯。
編寫redis的配置文件——redis.properties愿卸。
編寫redis的xml配置文件——redis-context.xml。
在spring的主配置文件(我的ssm項(xiàng)目本來只有這么一個(gè)xml配置文件)spring-mvc.xml引入剛剛編寫redis-context.xml文件截型。
在數(shù)據(jù)層注入redis實(shí)例趴荸,進(jìn)行數(shù)據(jù)緩存。
一頓操作猛于虎宦焦,一切貌似挺簡(jiǎn)單发钝,挺順利,但是啟動(dòng)的時(shí)候就開始報(bào)錯(cuò)了波闹,一直在報(bào)Could not resolve placeholder錯(cuò)誤:
仔細(xì)觀察了配置文件酝豪,確實(shí)有這個(gè)配置啊,而且也通過spring的context:property-placeholder標(biāo)簽引入的該配置文件:
但是就是報(bào)找不到這個(gè)屬性精堕,于是孵淘,去問問度娘吧,原來歹篓,spring容器只會(huì)維護(hù)一個(gè)PropertyPlaceholderConfigurer的bean實(shí)例瘫证,當(dāng)spring發(fā)現(xiàn)容器中有一個(gè)該實(shí)例后,就會(huì)忽略其余的滋捶,所以痛悯,該標(biāo)簽只能配置一個(gè),多余的spring會(huì)自動(dòng)忽略重窟。
問題知道了载萌,那么怎么解決呢?
度娘的說法很簡(jiǎn)單,只需要在context:property-placeholder標(biāo)簽中添加一個(gè)屬性ignore-unresolvable="true"即可扭仁!
事實(shí)證明垮衷,確實(shí),這樣的做法大部分情況下就解決了上述報(bào)的錯(cuò)誤乖坠,只要在所有的context:property-placeholder標(biāo)簽上都加上ignore-unresolvable="true"屬性就可以了搀突。