spring cloud(spring boot) 项目启动之error:Consider defining a bean of type’xxx’无法启动

项目场景

提示:spring cloud的一个服务模块本地启动不成功,原因是无法扫描到repository下的文件


问题描述

Consider defining a bean of type ‘com.xxx.service.geo.repository.AreaGeometryRepository’ in your configuration.


解决方案:

[思路一]:@SpringBootApplication
既然报错是无法扫描到com.xxx.service.geo.repository下的类,那么解决方式肯定先从Application启动类入口,看是否有添加扫描@SpringBootApplication的注解,我的代码处有添加@SpringBootApplication(scanBasePackages = {"com.xxx"}) 按理说应该可以扫描到啊,但是启动失败
[思路二]:@componentscan
1. 在使用@SpringBootApplication中添加了scanBasePackages扫描还没起作用,尝试使用@ComponentScan(basePackages = {""})组件,在其basePackages中填入com.xxx.service.geo.repository,可喜的是可以启动,但是依然报错(正常这一步是可以解决的),bean依然扫描 有问题
[思路三]:@MapperScan
想道是sql下repository包的问题,怀疑是mapper没有扫描到,所以添加mapperScan去,结果,依然不尽如意....但是方向对了
[思路四]:基于思路三到基础上往sql上靠拢,又查询了资料,发现可能是pom中的sql-jpa 依赖的问题,然后在pom中导入如下依赖,启动发现,成功了!!!
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
之前pom中引入的是如下的,但是没起作用,引入思路四下的依赖,成功了.
 <dependency>
       <artifactId>spring-data-jpa</artifactId>
        <groupId>org.springframework.data</groupId>
  </dependency>

总结:

正常出现Consider defining a bean of type ,思路一或思路二就可以解决,但是如果没效果(和我一样),可能不是扫描的问题,是依赖的问题,就往出现问题的类所在的依赖下思考,可以找到解决方法.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐