You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat/Spring Boot启动报错:无法解析占位符${datasource.driver}

错误排查方案

报错信息:java.lang.IllegalArgumentException: Could not resolve placeholder 'datasource.driver' in value "${datasource.driver}"

排查步骤

  • 检查引入的第三方依赖与自动装配逻辑
    Spring Boot自动装配会加载依赖包内的配置类,部分自定义starter、未适配的公共依赖包可能硬编码了${datasource.driver}占位符且未设置默认值。Spring Boot项目可在启动参数增加--debug,从输出的自动配置报告中检索datasource相关配置类,定位触发属性加载的依赖来源。
  • 检查所有生效的配置来源
    除了项目内的application.yml/application.properties、bootstrap.yml/bootstrap.properties外,还要检查:
    • 服务启动参数指定的外部配置文件、JVM系统属性
    • Tomcat容器的catalina.properties、context配置
    • 配置中心(nacos/apollo等)的公共配置、命名空间配置
    • 本地未提交到版本控制的临时配置文件
      这类不在源码目录的配置很容易被忽略,可能存在未清理的旧配置项。
  • 断点调试定位触发位置
    在报错栈对应的PropertyPlaceholderHelper.replacePlaceholders方法处打debug断点,查看占位符替换的上下文,可直接定位到是哪个配置类、哪个属性绑定逻辑触发了该占位符的解析,排查是否存在属性前缀拼接、拼写错误导致的间接引用。
  • 验证打包产物一致性
    解压编译打包后的jar/war包,全局搜索datasource.driver字符串,确认是否存在旧缓存配置、maven/gradle资源过滤逻辑意外引入的占位符。
  • 快速验证方案
    可临时在项目配置文件中添加datasource.driver=对应数据库驱动类名,如果启动成功,再通过Spring Boot的/actuator/env端点(需开启actuator)查询该属性的来源,快速缩小范围。

内容的提问来源于stack exchange,提问作者K-ticktock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:12:02