spring占位符无法替换的报错排查

在将SpringMVC项目迁移至SpringBoot时遇到${dependency.core.db.url}占位符未替换的问题。排查过程涉及PropertyPlaceholderConfigurer加载、依赖XML配置冲突及MapperScannerConfigurer的postProcessBeanDefinitionRegistry方法。最终发现由于同名Bean冲突导致,修改本项目内Dao类名称后问题解决。总结:深入分析异常是关键。
摘要由CSDN通过智能技术生成

开发环境

jdk:1.8

mybatis:3.4.5

spring:5.1.9

问题背景和报错信息

  1. 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。

  2. 项目迁移到springboot后,启动报错,概要信息是说某一个占位符${dependency.core.db.url}(并非真实的占位符名称)找不到。

问题分析思路

  1. PropertyPlaceholderConfigurer里面的配置信息没有加载到。

  2. 有某些bean触发了提前初始化,导致PropertyPlaceholderConfigurer 的postProcessBeanFactory方法没有执行,导致占位符没有被替换。

具体排查过程

思路1的排查过程

删除依赖的其他项目的xml࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值