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

Spring Boot启动报错:spring.datasource.schema无效及依赖版本疑问

问题分析与解决方案

首先可以明确:这个启动报错大概率不是依赖版本问题,而是你的spring.datasource.schema配置出现了错误。

为什么会报这个错?

你配置的spring.datasource.schema值为/dbo,但Spring Boot会将这个配置项解析为要加载的数据库初始化脚本路径——它会尝试从ServletContext中寻找名为/dbo的资源,但显然这不是一个合法的SQL脚本文件路径,自然会抛出“指定资源不存在”的异常。

如何解决这个配置问题?

  • 如果你的SQL Server数据库已经提前创建好了所需的表结构,不需要Spring Boot自动执行初始化脚本,直接删除spring.datasource.schema这个配置项即可,启动时就不会再尝试加载不存在的资源了。
  • 如果确实需要通过脚本初始化表结构,把配置值改成你的SQL脚本的正确路径:
    比如你的初始化脚本放在src/main/resources/schema.sql,那么配置应该写成:
    spring.datasource.schema=classpath:schema.sql
    

关于依赖版本的疑问(附正确版本获取方式)

如果之后真的遇到依赖版本不兼容的问题,你可以通过这些方式获取正确的版本:

  • 利用Spring Boot的依赖管理特性:Spring Boot的spring-boot-dependencies已经为所有常用依赖(包括JPA、Hibernate、SQL Server驱动等)预定义了兼容的版本。你只需要在pom.xml中引入依赖时不指定版本号,Maven会自动继承正确的版本。例如:
    <!-- 引入Spring Data JPA -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    
    <!-- 引入SQL Server JDBC驱动 -->
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
    </dependency>
    
  • 查看Spring Boot官方依赖清单:针对Spring Boot 2.1.6.RELEASE,你可以直接查看该版本对应的spring-boot-dependencies POM文件,里面列出了所有依赖的兼容版本。比如Hibernate 5.3.x系列是和Spring Boot 2.1.x版本匹配的。
  • 数据库驱动版本匹配:如果必须指定SQL Server驱动版本,要确保它和你的SQL Server数据库版本兼容(比如SQL Server 2016及以上可以使用较新的mssql-jdbc版本,但2012及以下可能需要指定较低版本)。

内容的提问来源于stack exchange,提问作者User_1940878

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:38:44