Spring Boot--07--@Repository 和@Mapper的区别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.@Repository的作用

1.1 含义

@Repository是属于Spring的注解,它与@Service、@Controller都可以理解为扩展的@Component注解。它们的作用都是在类上实例化bean,即把当前类对象的实现类交给Spring容器进行管理。

@Repository注解的等效替换:

@Component("userDao")
//等效替换
@Repository("userDao")
//等效替换
<bean id="userDao" class="com.cdxy.dao.impl.UserDaoImpl"></bean>

@Repository是属于Spring的注解。它用来标注访问层的类(Dao层),它表示一个仓库,主要用于封装对于数据库的访问,换句话说,@Repository注解修饰哪个类表明这个类具有对数据库CRUD的功能,用在持久层的接口上。

1.2 @Repository与@Service和@Component有什么区别?

  • @Repository作用如上所说。
  • @Service注解用来标注服务层中的类,用于处理业务逻辑。在使用@Service注解标记的类中,通常会注入@Reposity的类。
  • @Component注解是通用的注解,用来标记所有被spring容器管理的组件。在使用@Component注解标记的类中,通常会注入@Service和@Repository标记的类。

本质上都是把实例化对象交给spring管理。

1.3 使用场景

@Repository 作为spring的注解,他还能把所标注的类中抛出的数据访问异常封装为spring的数据访问异常类型

单独的使用@Mapper注解的话,在idea中进行自动装配的时候,会出现警告

使用@MapperScan(“com.zyp.mapper”)或者@Mapper注解修饰持久层时,借助@autowire注入持久层对象则报错,报错如图
在这里插入图片描述
在这里插入图片描述

Spring Boot–08–Mybatis 之Mapper在IDEA中自动注入警告的解决方案

使用@Repository注解,效果如图
在这里插入图片描述

单独使用@Repository,需要配合使用MapperScannerConfigurer或者@MapperScan注解
  1. @Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。
  2. @Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。

2.@Repository和@Mapper的异同

相同点

两个都是注解在Dao上

不同点

  1. @Repository是spring的注解,@Mapper是mybatis的注解。
  2. @Repository与@Mapper都可以使用,二者可以同时出现,也可以单一使用。
  3. 单独使用@Repository,需要配合使用MapperScannerConfigurer或者@MapperScan注解
    3.1@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中。
    3.2@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。
  4. 单独使用@Mapper时,可能会在编辑器出现警告,不影响程序运行。可以配合使用@Repository消除警告。(也可以在编辑器中设置忽略这种警告)

相关推荐

  1. springspringboot区别

    2024-02-02 08:00:02       42 阅读
  2. SpringSpringBoot区别

    2024-02-02 08:00:02       35 阅读
  3. springspringboot区别

    2024-02-02 08:00:02       31 阅读
  4. springspringboot区别

    2024-02-02 08:00:02       15 阅读
  5. SpringSpringBoot区别

    2024-02-02 08:00:02       22 阅读
  6. springbootspring区别

    2024-02-02 08:00:02       17 阅读
  7. SpringSpringBoot区别

    2024-02-02 08:00:02       14 阅读
  8. springspringboot区别,简单直接

    2024-02-02 08:00:02       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-02 08:00:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-02 08:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-02 08:00:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-02 08:00:02       20 阅读

热门阅读

  1. Objective-C中对象与对象之间的关系

    2024-02-02 08:00:02       29 阅读
  2. js获取dom元素的宽度数值

    2024-02-02 08:00:02       38 阅读
  3. Git 的基本概念和使用方式

    2024-02-02 08:00:02       29 阅读
  4. 算法价值3-贪心算法

    2024-02-02 08:00:02       28 阅读
  5. Python闭包

    2024-02-02 08:00:02       33 阅读
  6. 前端工程化之:webpack1-10(区分环境)

    2024-02-02 08:00:02       35 阅读
  7. windows10设置多个jar后台开机自启

    2024-02-02 08:00:02       40 阅读
  8. 【go】延迟执行和定时器实现

    2024-02-02 08:00:02       36 阅读
  9. R-YOLO

    R-YOLO

    2024-02-02 08:00:02      27 阅读
  10. SpringBoot使用poi将word转换为PDF并且展示

    2024-02-02 08:00:02       32 阅读
  11. 深度学习框架PyTorch的介绍和安装方法

    2024-02-02 08:00:02       36 阅读