当前位置 : 主页 > 编程语言 > java >

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.maxIdle' in stri

来源:互联网 收集:自由互联 发布时间:2022-07-05
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.maxIdle' in string value "${redis.maxIdle}" 解决办法: 知道了怎么配置,就知道自己有没有配置错误,如果配置没有问题,那么就

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'redis.maxIdle' in string value "${redis.maxIdle}"

解决办法:
知道了怎么配置,就知道自己有没有配置错误,如果配置没有问题,那么就继续找问题,Could not resolve placeholder占位符不能被解析,那就是没有在.properties中找到要注入的值了,原来是在xml里面配置了2个ignore-unresolvable,这就是定位问题所在了。
 

个是引入配置文件.properties,一个是引入db配置文件.properties,其实配置多个并不是报错的主要问题所在,是因为spring的加载机制,原来是Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描(Spring 3.1已经使用PropertySourcesPlaceholderConfigurer替代PropertyPlaceholderConfigurer了),所以根据加载的顺序,配置的第二个property-placeholder就被没有被spring加载,我想引入的config-wxapp.properties就没有被引入,所以在使用@Value注入的时候占位符就解析不了...解决方法就是把2个property-placeholder注解配置合并在一起就好了
 

 

原因是我发现我配置文件有多个这个东西.,,..

<context:property-placeholder location="classpath*:properties/*.properties" />

 


上一篇:java线程的停止,暂停,恢复*
下一篇:没有了
网友评论