区分@Repository和@Mapper

在spring中学习注解开发的时候,学过在Spring配置文件中配置注解支持后,如下:

 <context:component-scan base-package="com.cc.pojo"/>

再使用@Component注解,可以创建一个类的Bean并存在spring容器中
由@Component衍生出来的一些注解

  • dao层 @Repository
  • service层 @Service
  • servlet层 @Controller

用在特定层,以在项目开发中区分不同层级


后来,学习了纯注解开发的springboot后,发现在dao层出现了一个新的注解@Mapper,有时候有它没有@Repository,有时候没它有@Repository

他们有什么区别呢?
@Mapper注解的作用:生成mapper接口的实现类,创建实现类的对象并交由spring容器管理
@Repository注解的作用:创建mapper接口实现类的对象并交由spring容器管理

所以,注册mapper的两种方式,如下

  1. Springboot项目的启动类上面添加@MapperScan(扫描的包路径)注解,该注解作用–扫描并实现mapper接口
    这个注解和@Repository注解一起使用来注册mapper
  2. @Mapper注解可以单独使用来注册mapper

注册mapper以后,mapper接口类的xml映射文件去哪找

在SpringBoot配置文件中配置 mybatis.mapper-locations,作用是扫描注册Mapper接口对应的XML文件
XML文件中的namespace指定了对应的mapper接口

你可能感兴趣的:(JAVA笔记,spring,boot)