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