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

Spring Boot 3应用如何加载data.sql?DataSourceScriptDatabaseInitializer已移除

Spring Boot 3+ 加载data.sql配置调整方案

问题原因

Spring Boot 3.x 重构了数据库初始化机制,原2.x版本中用于脚本初始化的dataSourceScriptDatabaseInitializer类已被移除,同时相关配置项也发生了变更,导致原配置无法正常工作。

解决步骤

替换原有的数据库初始化配置项,使用Spring Boot 3.x支持的新参数:

  • 移除旧配置:
    • spring.datasource.data=classpath:/data.sql
    • spring.datasource.initialization-mode=always
  • 添加新配置:
    • spring.sql.init.data-locations=classpath:/data.sql:指定数据初始化脚本路径
    • spring.sql.init.mode=always:设置脚本始终执行(可选值还有embedded、never)

修改后的完整application.properties

server.port: 8080
 
spring.datasource.url=jdbc:h2:mem:javatpoint
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
#enabling the H2 console
spring.h2.console.enabled=true

spring.jpa.show-sql=true

# Spring Boot 3+ 数据库初始化配置
spring.sql.init.data-locations=classpath:/data.sql
spring.sql.init.mode=always

补充说明

  • 若需要执行schema初始化脚本(如schema.sql),对应配置为spring.sql.init.schema-locations=classpath:/schema.sql
  • spring.sql.init.mode的embedded模式仅在嵌入式数据库(如H2)启动时执行脚本,适合开发环境;always则每次启动都执行,可按需选择

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:53:15