开发环境
jdk:1.8
mybatis:3.4.5
spring:5.1.9
问题背景和报错信息
-
Springmvc的项目转成springboot的项目,该项目依赖了一些其他业务组的jar,比如dependency-core:0.0.1, dependency-extensions:0.0.1(并非真实的jar名称)。该项目的配置基本都是通过xml完成的,在xml里面定义了一些PropertyPlaceholderConfigurer。并且在该项目的xml里面又import了dependency-core和dependency-extensions里面的xml文件,这些xml文件里面也同样定义了PropertyPlaceholderConfigurer和MapperScanner。
-
项目迁移到springboot后,启动报错,概要信息是说某一个占位符${dependency.core.db.url}(并非真实的占位符名称)找不到。
问题分析思路
-
PropertyPlaceholderConfigurer里面的配置信息没有加载到。
-
有某些bean触发了提前初始化,导致PropertyPlaceholderConfigurer 的postProcessBeanFactory方法没有执行,导致占位符没有被替换。
具体排查过程
思路1的排查过程
删除依赖的其他项目的xml