微信连接微网站吗,天津网站建设渠道,房地产市场信息系统网站,微信小程序开发者文档在Spring Boot工程中#xff0c;若未识别到resources/db文件夹下的SQL文件#xff0c;通常与资源路径配置、构建工具设置或代码加载方式有关。以下是逐步排查和解决方案#xff1a;1. 确认SQL文件存放路径Spring Boot默认从类路径#xff08;classpath:#xff09…在Spring Boot工程中若未识别到resources/db文件夹下的SQL文件通常与资源路径配置、构建工具设置或代码加载方式有关。以下是逐步排查和解决方案1. 确认SQL文件存放路径Spring Boot默认从类路径classpath:加载资源标准资源目录为src/main/resources。确保SQL文件存放于
src/main/resources/db/编译后文件应被复制到输出目录的classes/db/下如Maven的target/classes/db/或Gradle的build/classes/java/main/db/。2. 检查构建工具资源配置构建工具Maven/Gradle可能因自定义配置排除了db目录导致文件未被打包。Maven项目检查pom.xml中的resources配置确保未排除db目录
buildresourcesresourcedirectorysrc/main/resources/directory!-- 确保没有排除db目录 --!-- excludesexcludedb/**/exclude/excludes -- /resource/resources
/buildGradle项目检查build.gradle中的sourceSets配置确保包含db目录
sourceSets {main {resources {srcDirs [src/main/resources]// 确保包含db目录默认已包含无需额外配置}}
}3. 显式配置SQL文件路径关键若通过Spring Boot自动初始化数据库如schema.sql/data.sql需在application.properties或application.yml中显式指定路径默认仅加载根路径的schema.sql/data.sql。示例配置
# application.properties
# 加载db目录下的schema.sql建表语句
spring.datasource.schemaclasspath:db/schema.sql
# 加载db目录下的data.sql插入数据
spring.datasource.dataclasspath:db/data.sql
# application.yml
spring:datasource:schema: classpath:db/schema.sqldata: classpath:db/data.sql4. 其他场景手动加载SQL文件若在代码中手动加载如通过JdbcTemplate或Sql注解需使用正确的类路径前缀。示例1通过Sql注解测试场景
SpringBootTest
Sql(scripts classpath:db/init-test.sql) // 指向db目录下的init-test.sql
public class MyServiceTest {// ...
}示例2通过JdbcTemplate执行
Autowired
private JdbcTemplate jdbcTemplate;public void init() {// 读取db目录下的script.sqlResource resource new ClassPathResource(db/script.sql);String sql new String(resource.getInputStream().readAllBytes());jdbcTemplate.execute(sql);
}5. 验证文件是否被正确打包构建项目后检查输出目录如target/classes/db/是否存在SQL文件Maven执行mvn clean package查看target/classes/db/。Gradle执行gradle clean build查看build/classes/java/main/db/。6. 其他注意事项数据库方言与初始化顺序若使用Hibernate确保spring.jpa.hibernate.ddl-autonone避免Hibernate自动生成DDL覆盖schema.sql。外部配置覆盖若通过--spring.config.location指定外部配置需确认配置中包含spring.datasource.schema路径。IDE缓存问题重启IDE或清理缓存如IntelliJ的File Invalidate Caches。总结核心步骤确认SQL文件在src/main/resources/db/下检查构建工具未排除该目录在application.properties中显式配置spring.datasource.schema/data路径手动加载时使用classpath:db/xxx.sql前缀。