SpringBoot 3解压后自定义启动脚本找不到ProjectAclRepository Bean求助
可能导致Repository无法被识别的类路径缺失项
Spring Data JPA相关依赖包缺失
你的ProjectAclRepository应该是Spring Data JPA的接口(通常继承JpaRepository),如果类路径中缺少spring-data-jpa.jar、hibernate-core.jar(或其他JPA实现包),Spring无法识别Repository接口并生成代理Bean。mvn spring-boot:run会自动引入所有依赖,但自定义启动脚本如果漏加这类包,就会触发该错误。Spring Boot自动配置依赖缺失
spring-boot-autoconfigure.jar包含Spring Boot的自动配置逻辑,其中就有Spring Data JPA的自动配置类。如果缺失这个包,Spring不会自动扫描Repository接口,即使Repository类在classpath中,也不会被注册为Spring Bean。Jakarta Persistence API包缺失
Spring Boot 3基于Jakarta EE规范,需要jakarta.persistence-api.jar作为JPA核心API包。没有它的话,Repository接口上的@Repository注解、继承的JpaRepository接口都无法被识别,Spring无法处理这类Bean的创建。数据库驱动包缺失
虽然报错未直接提及数据库连接,但如果对应的数据库驱动包(如mysql-connector-j.jar)不在类路径中,Spring Data JPA的自动配置可能因无法创建数据源而跳过Repository的Bean注册,间接导致找不到Repository Bean。Spring核心依赖包缺失
比如spring-context.jar、spring-beans.jar这类核心包,若缺失会导致Spring的依赖注入和Bean扫描机制失效,也可能引发Repository无法被识别的问题。不过从日志看Spring上下文已初始化,这类情况概率较低,但仍需确认是否漏加。
排查建议
- 执行
mvn dependency:tree查看项目完整依赖列表,对比自定义启动脚本中的Jar包,确认Spring Data、JPA相关依赖是否全部加入类路径。 - 启动命令中使用通配符
WEB-INF/lib/*代替手动列举Jar包,比如:
避免因手动漏加依赖导致问题。java -cp "./WEB-INF/classes:./WEB-INF/lib/*" com.company.myapp.Application
内容的提问来源于stack exchange,提问作者Black

