区别

  • @Repository和@Mapper都是用在dao层上的注解,标记为持久层,不过使用上也会有区别
  • @Repository是spring的注解,标记为一个bean,配合mybatis时需要在启动类上配置@MapperScan(“mapper接口的包名”)
  • @Mapper是mybatis的注解,不需要额外的@MapperScan扫描,直接加在mapper接口上就行
    1. @Mapper
    2. //@Repository
    3. public interface ArticleMapper {}
    但是有时候当我们有很多mapper接口时,就需要写很多@Mappe注解,这样很麻烦,有一种简便的配置化方法便是在启动类上使用@MapperScan注解。这样可以自动扫描包路径下所有的mapper接口,从而不用再在接口上添加任何注解。
    1. @SpringBootApplication
    2. @MapperScan("com.liyadong.mapper")
    3. public class LiyadongBlogApplication {
    4. public static void main(String[] args) {
    5. SpringApplication.run(LiyadongBlogApplication.class,args);
    6. }
    7. }

    消除自动装配mapper爆红

    直接在启动类上写@MapperScan注解,不在mapper接口上写@Mapper和@Repository,也是没问题的
    但是
    自动装配可能会标红,但是不影响使用。消除爆红的方式就是在对应mapper接口上加一个@Repository注解
    image.png