欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-12 20:18:40
今天启动springboot项目时失败了解决检查原因发现是启动类的mapperscan("")的值写到类名了,改成类所在的包名错误就修复了。springboot 扫描不到dao层和controller...

今天启动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 springbootservletinitializer
    public 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”})

二选一即可如图所示

@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);
    }
}

注意:不要使用错误注解

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。