Spring加载**.properties失败的问题

小弟刚刚接触spring。打算自己建立一个工程。在创建过程中遇到一个问题,如下:
工程结构:
图片说明
web.xml引入子工程配置:
图片说明
mq-demo-consumer.xml里面引入文件配置如下:
图片说明
spring-config.xml里面引入配置文件如下:
图片说明
其中spring-datasources.xml 文件引入:

mq-inputpiece-api.xml文件引入:

所有的**.properties文件都在
图片说明
编译之后class文件:
图片说明
可以看到所有的**.properties已经都在classes路径下。
具体问题是:
web.xml的配置的

contextConfigLocation

<!--classpath*:spring-config.xml,-->
classpath*:mq-demo-consumer.xml,
classpath*:spring-config.xml,
<!--classpath*:spring-redis.xml,-->
classpath*:spring-shiro.xml;


如果屏蔽mq-demo-consumer.xml则系统正常。如果引入mq-demo-consumer.xml则spring-config.xml里面配置的数据库问题提示找不到**.properties里面的配置项。如果把spring-config.xml 放到 mq-demo-consumer.xml之前则mq-demo-consumer.xml里面配置的mq-inputpiece-api.xml里面找不到rabbitmq.properties里面的配置项。查看spring加载日志发现只有写在web.xml里面前面的xml文件可以引入**.propert。后面的文件无法引入
.xml里面配置的.properties

7个回答

去看看《Spring实战》,试试用Java配置吧,另外你可以把你的工程打包发到百度云,这样方便帮你处理问题。

PropertyPlaceholderConfigurer类的方式在spring的配置文件中只有一个起作用,即,假如都配置了,只有最先配置的才会被配置文件加载到,

http://lib.csdn.net/my/structure/spring 看下这个吧。应该对你有帮助。

yaohx123
yaohx123 不存在了
大约 2 年之前 回复

我接触过的工程确实是都将properties文件放到web.xml中引用的

u010279664 是第一个回答问题的。帮我解决了问题,但是没有说明具体配置。贴出一个配置希望对大家有帮助

yaohx123
yaohx123 <context:property-placeholder location="classpath:*.properties" order="0" ignore-resource-not-found="false"/>
大约 2 年之前 回复

classpath*:mq-demo-consumer.xml,spring-config.xml这样吧

和配置PropertyPlaceholderConfigurer类的方式在spring的配置文件中只有一个起作用,即,假如都配置了,只有最先配置的才会被配置文件加载到,因为spring容器采用反射扫描机制,如果已经有一个PropertyPlaceholderConfigurer类的实例,那么就不会再创建了,因此使用其中一种方式即可

qq_41612035
qq_41612035 和配置PropertyPlaceholderConfigurer类的方式在spring的配置文件中只有一个起作用,即,假如都配置了,只有最先配置的才会被配置文件加载到,因为spring容器采用反射扫描机制,如果已经有一个PropertyPlaceholderConfigurer类的实例,那么就不会再创建了,因此使用其中一种方式即可
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 请管理员注意封杀这个胡乱抄袭的垃圾用户。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问