SSM或Spring Boor开发中@Repository和@Mapper的区别
在做一个SpringBoot项目的时候在Dao层使用了@Repository注解然后报了这个错:
Description: Field userService in com.example.demo.Three.controller.UserController required a bean of type 'com.example.demo.Three.dao.UserDao' that could not be found. The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.example.demo.Three.dao.UserDao' in your configuration.
错误大概意思是没有该Bean。在service使用@Autowired注解也会显示该bean不存在。
于是更换了@Mapper注解,虽然service还是显示未找到该bean,但是程序能够运行成功,后面查阅了资料才理解了。
Mybatis的配置文件有xml文件格式和注解格式,使用@Mapper注解的时候,Spring程序在运行时,Mybatis就会自动找到使用@Mapper注解的mapper,在编译的时候动态生成代理类。所以在service层能够注入成功。
使用@Repository注解也是可以的,只需要加入扫描注解即可。
@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.Three.dao")
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
这两种注解的区别在于:
1、使用@Mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。
2、@Repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中
@Mapper是Mybatis的注解,@Mapper=@Repository+@MapperScan
@Repository是Spring的注解。
SSM或Spring Boor开发中@Repository和@Mapper的区别的更多相关文章
- spring注解开发中常用注解以及简单配置
一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向sprin ...
- ***php进行支付宝开发中return_url和notify_url的区别分析
本文实例分析了php进行支付宝开发中return_url和notify_url的区别.分享给大家供大家参考.具体分析如下: 在支付宝处理业务中return_url,notify_url是返回些什么状态 ...
- mvc开发中DTO,DO,FROM的区别
DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...
- android开发中的 Activity 与 Context 区别与联系
Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...
- spring quartz开发中使用demo
1.首先在pom.xml中配置quartz的jar: <!--定时器--> <dependency> <groupId>org.quartz-scheduler&l ...
- Spring AOP 开发中遇到问题:Caused by: java.lang.IllegalArgumentException: warning no match for this type name: com.xxx.collector.service.impl.XxxServiceImpl [Xlint:invalidAbsoluteTypeName]
在网上找了很多,都不是我想要的,后来发现是我在springaop注解的时候 写错了类名导致的这个问题 @Pointcut("execution(* com.xxx.collector.ser ...
- ArcEngine开发中StartEditing和StartEditOperation的区别
背景: 最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始.保存.回滚编辑的入口内. ...
- 支付宝开发中return_url和notify_url的区别分析
在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态. 支付宝return_url和notif ...
- 开发中mysql和oracle的区别
首先就不描述mysql与oracle在整个数据库系统上的区别了,仅从程序员开发的角度来说: 1.主键: mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment ...
- PHP 进行支付宝开发中return_url和notify_url的区别分析
在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍; 一.问题描述 ...
随机推荐
- RHEL 环境下 Subversion 服务器部署与配置
RHEL 环境下 Subversion 服务器部署与配置 1. 更新系统 首先确保系统软件包是最新的: sudo yum update -y 2. 安装Apache和Subversion 2.1 安装 ...
- 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
题目大意 小A和小B,要进行 \(N\) 次猜拳,每次按照一定周期出拳,胜负情况如下: 求出小A和小B分别赢了几次. 思路 枚举 \(N\) 次猜拳,每次比较 \(a[powera]\) 与 \(b[ ...
- QT Creator项目路径设置
1.一些中间文件的生成路径的设置 MOC_DIR = temp/moc RCC_DIR = temp/rcc UI_DIR = temp/ui OBJECTS_DIR = temp/obj 这样设置之 ...
- end.jenkins的备份和迁移
数据备份: 进入安装目录 cd /var/lib/jenkins 进入到主目录下,可以看到很多文件,是否需要全部打包呢?其实我们只需要打包4个文件就可以了. 如上图所示分别是 config.xml ...
- 2024最新免费IP地址SSL证书申请
为IP地址申请免费的SSL证书相对较为困难,因为多数证书颁发机构(CA)提供的免费SSL证书主要是基于域名的.不过,还是可以尝试以下方法来申请免费的IP地址SSL证书: 一.确认IP地址与了解需求 确 ...
- .NET周刊【11月第3期 2024-11-17】
国内文章 .NET 9使用Scalar替代Swagger https://www.cnblogs.com/netry/p/18543378/scalar-an-alternative-to-swagg ...
- 敏捷开发:Sprint Planning 冲刺计划会议详细介绍和用户故事拆分、开发任务细分
Sprint Planning 冲刺计划会议简介 Sprint Planning (冲刺计划会议),又叫规划会议.此会议通过 Scrum 团队的集体沟通讨论,确定接下来的 Sprint 中要完成的待开 ...
- js逆向之常用算法
[Python] encode & decode from urllib import parse # url进行编码与解码 url = '你好啊' url_encode = parse.qu ...
- AtCoder Beginner Contest 379
Contest Link C 妙妙贪心题,居然需要高斯求和公式. Submission D 妙妙套路题,维护全局 lazytag,easy to solve. Submission E 妙妙拆贡献题, ...
- JavaWeb 入门到实战
注:看狂神说做的笔记 1.基本概念 1.1 前言 web开发: web:网页的意思,www.baidu.com,就是一个web页面 静态web: 不与数据库进行交互,静态显示网页数据(你刚学 html ...