黑马程序员技术交流社区

标题: 【成都校区】PropertyPlaceholderConfigurer在聚合工程中的使用问题 [打印本页]

作者: HelloD    时间: 2018-2-9 09:42
标题: 【成都校区】PropertyPlaceholderConfigurer在聚合工程中的使用问题
本帖最后由 HelloD 于 2018-3-15 12:01 编辑

        关于<context:property-placeholder>的一个有趣现象(聚合工程)

        现在有两个模块A和B
        A的配置文件如下:
        

        B的配置文件如下:
        


        问题就来了,单独运行A或者B模块的时候都能正常启动,但是A、B集成之后运行的话,spring容器就启动不了;

        Could not resolve placeholder 'moduleb.jdbc.driverClassName' in string value "${moduleb.jdbc.driverClassName}"


         在spring中扫描配置文件的是一个PropertyPlaceholderConfigurer对象,他在spring容器中默认只有一个,也就是说在A容器中创建了一个之后,B容器再去创建对象的请求就会被spring直接忽略掉;因而造成无法正确进行属性替换的问题。


         解决方案:
                 一个项目或一个系统的配置应该放在一起。<context:property-placeholder  locations="classpath*:*.properties" />即可。










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2