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.sqlspring.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
相关产品推荐
相关产品推荐

