springboot启动报错,使用MyBatis-Plus 代码生成器,创建框架,Unsatisfied dependency expressed through field ‘baseMapper‘
目录
一、报错信息如下:
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2025-06-27T01:51:50.826+08:00 ERROR 42260 --- [campus-management-v1] [ restartedMain] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'classInfoController': Unsatisfied dependency expressed through field 'classInfoService': Error creating bean with name 'classInfoServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': No qualifying bean of type 'com.zyj.campusmanagementv1.mapper.ClassInfoMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

二、工程结构如下

三、解决方法
在启动类加入这个注释@MapperScan之后成功启动,多次忘记这个了,所以记录一下。
具体实例如下:
package com.zyj.campusmanagementv1;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.zyj.campusmanagementv1.mapper")
public class CampusManagementV1Application {
public static void main(String[] args) {
SpringApplication.run(CampusManagementV1Application.class, args);
}
}
四、@MapperScan
@MapperScan 是 MyBatis-Spring 中的注解,用于批量扫描 MyBatis 的 Mapper 接口,将其注册为 Spring Bean,让框架自动生成代理实现类,方便在业务代码中注入使用,以下是核心要点:
1. 核心作用
自动扫描指定包(及子包)下的 Mapper 接口(如 UserMapper.java 这类定义数据库操作的接口 )。
通过动态代理生成 Mapper 接口的实现类,并注册到 Spring 容器,后续可直接 @Autowired 注入使用。
2. 与 @Mapper 的区别
@MapperScan:批量扫描,在启动类 / 配置类加一次即可,适合 Mapper 多、想统一管理的场景。
@Mapper:单个标记,需在每个 Mapper 接口上加,适合 Mapper 少、想明确标识的场景。
3. 底层原理
通过 @Import(MapperScannerRegistrar.class) 导入注册逻辑,MapperScannerRegistrar 会扫描指定包,为每个 Mapper 接口创建 MapperFactoryBean,最终由 Spring 管理这些 Bean 的生命周期。
更多推荐




所有评论(0)