springboot启动扫描不到dao层接口的解决方案

今天启动springboot项目时失败了
springboot启动扫描不到dao层接口的解决方案
文章图片

解决 检查原因发现是启动类的MapperScan("")的值写到类名了,改成类所在的包名错误就修复了。
springboot 扫描不到dao层和controller 一、提示

A component required a bean of type ‘com.imooc2.product.category.dao.ProductCategoryDao' that could not be found即dao层找不到了
解决:使用@MapperScan 注解或者@MapperScans注解
import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScans; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableSwagger2@SpringBootApplication@MapperScan("com.imooc2.product.**.dao")public class ProductApplication{//extends SpringBootServletInitializerpublic static void main(String[] args) {SpringApplication.run(ProductApplication.class, args); }}

二、问题:
  1. 提示controller和services层找不到
  2. 访问controller的方法显示404错误
解决:
1、启动类放到跟目录下面,如图,我的controller和service分别在com.imooc2.product的product文件夹和category文件夹里面,所以启动类要放在根目录com.imooc2.product下
原因:sprigboot 会自动扫描根目录以下的全部包
springboot启动扫描不到dao层接口的解决方案
文章图片

2、有可能是缓存还是项目启动类识别不了controller层和service层,或者你不想把启动类放到根目录下去默认扫描,可以更新至springboot 2.0.5.RELEASE,使用自定义扫描包注解
@ComponentScan(basePackages = {“com.imooc2.product.product”, “com.imooc2.product.category”})

或者
@SpringBootApplication(scanBasePackages = {“com.imooc2.product.product”, “com.imooc2.product.category”})

【springboot启动扫描不到dao层接口的解决方案】二选一即可如图所示
@SpringBootApplication(scanBasePackages = {"com.imooc2.product","com.imooc2.product.**.dao"})//二选一@ComponentScan(basePackages = {"com.imooc2.product.product", "com.imooc2.product.category"})//二选一@MapperScan("com.imooc2.product.**.dao")public class ProductApplication{public static void main(String[] args) {SpringApplication.run(ProductApplication.class, args); }}

注意:不要使用错误注解
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读