栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis的@MapperScan注解和@Mapper的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis的@MapperScan注解和@Mapper的区别

一、@MapperScan

它用于标注在SpingBoot的启动类上面,然后用MapperScan类的basePackages()属性或直接进行编写包的扫描范围,来扫描该路径下的所有接口。

String[] basePackages() default {};

例如:
1.直接赋值范围

@MapperScan("com.hmdp.mapper")
@SpringBootApplication
public class PingApplication {
    public static void main(String[] args) {
        SpringApplication.run(PingApplication.class, args);
    }
}

2.根据属性复制范围

@MapperScan(basePackages = "com.hmdp.mapper")
@SpringBootApplication
public class PingApplication {
    public static void main(String[] args) {
        SpringApplication.run(PingApplication.class, args);
    }
}

二、@Mapper

用来标记在接口中,表明该标记类是一个mapper接口。
例如:

@Mapper
public interface CommentsMapper {

}

总结:

  • 相同点:都是用来注入spring容器的。
  • 不同点:@mapper 只可以有标注该注解的才可以注入进去(如果有多个mapper接口则工作量比较多)。@MapperScan 可以批量进行注入只要标明包的路径该路径下的所有包都可以扫描注入进去。

注:如果某个mapper类没有标注@Mapper注解并且该类也被其他的注入类依赖,或者@MapperScan没有加,启动时就会报错

No qualifying bean of type 'com.hmdp.mapper.BlogCommentsMapper' 
available: expected at least 1 bean which qualifies as autowire 
candidate. Dependency annotations:{@org.springframework.beans
.factory.annotation.Autowired(required=true)}

如有问题或意见请指出,谢谢!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号