首页 > 其他分享 >Spring中@Mapper和@Repository的区别与使用

Spring中@Mapper和@Repository的区别与使用

时间:2023-11-23 14:48:27浏览次数:28  
标签:Mapper Repository spring Spring 接口 使用 注解

本文根据文章:https://blog.csdn.net/m0_45210394/article/details/126223145 进行修改

@Mapper是mybatis的注解,标注在dao层接口上,可以通过动态代理生成接口的实例bean(编译之后能生成相应的接口实现类)

@Repository是spring的注解,也标注在dao层接口上,但是@Repository注解只是表明这个类具有对数据库CRUD的功能,想真正使用还得配合@Mapper或@MapperScan注解。如果不使用@Repository注解就会出现如下图所示的“注入”错误的提示(IDEA 会提示错误,但是不影响实际运行)

之所以出现上面这个错误是因为spring的自动扫描,而@Mapper不是spring的注解,所以有无法注入的提示。但是这个在实际运行中并无影响,因为有@Mapper或@MapperScan就可以生成bean。

项目中最好是分别在启动类和Mappr接口加上@MapperScan注解和@Repository注解的搭配使用,这样将会自动扫描所有mapper接口生成实现类,不需要为每个mapper接口单独加@Mapper注解,还能够消除“注入”的错误提示的作用

总结
1、@Repository是spring的注解,@Mapper是mybatis的注解。
2、@Repository与@Mapper都可以使用,二者可以同时出现,也可以单一使用。
3、单独使用@Repository,需要配合使用MapperScannerConfigurer或者@MapperScan注解。
4、单独使用@Mapper时,可能会在编辑器出现警告,不影响程序运行。可以配合使用@Repository消除警告。(也可以在编辑器中设置忽略这种警告)

标签:Mapper,Repository,spring,Spring,接口,使用,注解
From: https://www.cnblogs.com/zoufh/p/17847257.html

相关文章

  • Bean instantiation via constructor failed; nested exception is org.springframewo
    一、从公司的的GitLab下载项目到本地二、nacos-2.0.1启动不了我以为是我中文路径问题,然后放到全是英文的一样报错,百度一圈没找到解决方法。三、大佬路过,瞟了我一眼的电脑解决了。删除D:\nacos-2.0.0\data 下面的所有文件即可 原因就是有人把自己的数据上传到git了,导致......
  • 基于java+springboot的酒店预定网站、酒店客房管理系统
    该系统是基于Java的酒店客房预订系统设计与实现。是给师弟开发的毕业设计。现将源代码开放出来,感兴趣的同学可以下载。演示地址前台地址:http://hotel.gitapp.cn后台地址:http://hotel.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123功能介绍平台采用B/S结构,后端采用主......
  • springboot多文件上传代码实例及解析
    这篇文章主要介绍了springboot多文件上传代码实例及解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下一说明spingMVC支持文件上传,我们通过Apach的commons-fileupload包的CommonsMultipartResolver去实现了spingMVC的Mu......
  • Spring_2023_11_23_1 Spring--整合JDBC===》JdbcTemplate
    Spring--整合JDBC===》JdbcTemplateListquery(Stringsql,RowMapperrowMapper,@NullableObject...args)Stringsql执行的sql语句,可以使用占位符RowMapper接口:2.1mapRow(ResultSetrs,introwNum):查询出数据的每一行的映射2.1.1ResultSetrs:结果中存储的是一......
  • SpringBoot注入时设置《多例》
    SpringBoot设置多例1、准备数据测试接口packagecom.cc.jschdemo.springmultiton;/***<p>spring多例测试</p>**@author--*@since2023/11/23*/publicinterfaceISpringMultiton{}测试接口实现(注入spring)packagecom.cc.jschdemo.springmultiton;i......
  • spring笔记
     Async First,let’sgoovertherules. @Async hastwolimitations:Itmustbeappliedto public methodsonly.Self-invocation—callingtheasyncmethodfromwithinthesameclass—won’twork.https://www.baeldung.com/spring-async......
  • Springboot全局异常处理
    自定义异常枚举类枚举类用于定义自定义的异常类型,对应自定义错误码,错误信息,状态码publicenumErrorCodeEnum{USERINFO_EXCEPTION(10001,HttpStatus.INTERNAL_SERVER_ERROR,"UserInfoException"),AUTHORIZATION_EXCEPTION(10002,HttpStatus.UNAUTHORIZED,"Authoriza......
  • 使用SpringBoot实现文件的上传
    使用SpringBoot实现文件的上传springboot可以直接使用org.springframework.web.multipart.MultipartFile所以非常容易实现一、首先是简单的单文件上传先在index.html页面下写一个简单的form表单<h1>单文件</h1><formclass="form-signin"th:action="@{/SingleFile/upload}"......
  • Spring_2023_11_22_3 Spring--连接数据库
    Spring--连接数据库Spring提供了JdbcTemplate模板类依赖的引入:i. Spring-contextii. Spring-jdbciii. Mysqliv. dbcp(连接池)<!--spring基础依赖--><dependency><groupId>org.springframework</groupId><artifactId......
  • springboot如何监控各种指标?
    以springboot2.7.17为例: 1:新增如下依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency> 然后,在你的配置文件(如 application.properties)中添加以下配......