说白点,就是没办法对应的参数映射。然后就把异常跑出来了。
解决方案
一、没有
看下是否是写错了placeholder 占位符,这个是经常性遇到的问题,特别是比较长又字符错位的情况下,一般很难发现。
个人建议的最好办法是进行placeholder 复制操作。这个一般不会出错。
二、有多个
根据网上的解释,Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,当Spring探测到容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描,即只能存在一个实例!然后你在其它地方引用你配置的第二个placeholder中的值就会报错。
解决方案就是全局搜索下,说不定就在哪个犄角旮旯里面藏着一个。
三、错误
看下是不是你的配置文件名和pom.xml文件内容下的profile的名字对不上导致的。像多或者少了个横线之类的。很不好意思的告诉你,我就是多了个横线,硬是没有发现问题,然后把打好的jar包解压,发现没有对应的配置文件,才知道错误在哪里。
总结
其实这个问题,主要是因为心大导致的。有的时候因为写多了,然后到处复制,结果复制后修改不及时。
平时多注意下,基本上这类问题都可以自行杜绝的,没有什么技术活。