Spring @Repository 注解

Spring 的项目严重依赖注解。

@Repository 注解

在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常

在Spring2.5版本中,引入了更多的Spring类注解:@Component,@Service,@Controller。Component是一个通用的Spring容器管理的单例bean组件。而@Repository, @Service, @Controller 就是针对不同的使用场景所采取的特定功能化的注解组件。

因此,当你的一个类被 @Component 所注解,那么就意味着同样可以用 @Repository, @Service, @Controller来替代它,同时这些注解会具备有更多的功能,而且功能各异。

最后,如果你不知道要在项目的业务层采用 @Service 还是 @Component注解。那么,@Service是一个更好的选择。

就如上文所说的,@Repository早已被支持了在你的持久层作为一个标记可以去自动处理数据库操作产生的异常(译者注:因为原生的java操作数据库所产生的异常只定义了几种,但是产生数据库异常的原因却有很多种,这样对于数据库操作的报错排查造成了一定的影响;而Spring拓展了原生的持久层异常,针对不同的产生原因有了更多的异常进行描述。

所以,在注解了@Repository的类上如果数据库操作中抛出了异常,就能对其进行处理,转而抛出的是翻译后的spring专属数据库异常,方便我们对异常进行排查处理。

通过上面的话来看就是如果是数据库持久层的就使用 @Repository 注解就好了。

根据 Spring Data JPA 的项目,我们会首先定义一个接口,在这个接口上可能会继承 CrudRepository。

如下面的代码:

@Repository
public interface VisaCheckeeRepository extends CrudRepository<VisaCheckee, Long> {VisaCheckee findVisaCheckeeByCheckeeVisaId(String checkeeVisaId);}

上面的代码中,就算不使用 @Repository 也是可以被扫描到的。

当然我们还是建议使用 @Repository 来注解这个与持久层有关的访问。

如果你还有实现类的话,也记得把你的实现类用 @Repository 注解上。

如果,我们来看看上面的图,就能比较直观的了解 @Repository 这个注解在 Spring 项目中的地位了。

Spring @Repository 注解 - Spring - OSSEZSpring 的项目严重依赖注解。 @Repository 注解在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常 在Spring2.5版本中,引入了更多的Spring类注解:@Component,@Service,@Controller。Component是一个通用的Spring容器管理的单例bean组件…icon-default.png?t=N7T8https://www.ossez.com/t/spring-repository/14075

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Today At Apple 2024.04.20 ipad 绘画 图片管理

文章目录 recreate 软件 绘画图片管理 官网&#xff1a; https://www.apple.com/today/Apple 亚洲第一大商店&#xff1a;Apple 静安零售店现已在上海开幕如下预约课程&#xff1a;下载 Apple Store&#xff08;不是app store&#xff09;&#xff0c;点击课程预约笔记&#xf…

GEVernova推出GEV新能源平台,引领新能源未来

近日&#xff0c;全球领先的能源设备制造和服务公司 GE Vernova 宣布推出 GEV 新能源平台&#xff0c;这是一个将金融、科技和产业深度融合的全新投资平台。GEV 新能源平台旨在为用户提供一站式可持续新能源投资解决方案&#xff0c;助力全球新能源转型和可持续发展。 新能源已…

基于MetaGPT的智能体理论与实践-Task01

Task01: MetaGPT环境配置 学习教程&#xff1a;https://github.com/datawhalechina/hugging-multi-agent 1 环境准备 1.1 安装python3.9 通过&#xff1a;python3 --version, 查看此python版本为3.10.3 1.2 下载MetaGPT 开始&#xff0c;借用清华镜像&#xff0c;拉取…

acw165. 小猫爬山-DFS剪枝与优化

题目 思路 暴搜顺序&#xff1a;从前往后依次枚举每只小猫&#xff0c;枚举当前这只小猫应该放在哪一辆车上&#xff0c;递归完n层之后&#xff0c;就可以知道所有方案中的最少车辆总数剪枝的情况&#xff1a; 优化搜索顺序&#xff1a;大部分情况下&#xff0c;应该优先搜索分…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

李飞飞团队关于2024年人工智能发展报告总结 (Artificial Intelligence Index Report)

目录 1 10大核心信息2 AI研究和发展2.1 核心要点2.2 核心对比信息2.3 模型是否会用尽数据2.4 基础模型发展2.5 训练模型成本 3 技术性能3.1 核心要点3.2 重要模型发布情况3.3 AI表现情况3.4 多学科、高难度评估集 (MMMU & GPQA & ARC)3.5 Agents3.6 RLHF & RLAIF3.…

山西教育杂志山西教育杂志社山西教育编辑部2024年第4期目录

课题研究 小学语文随堂小练笔策略研究 陈立固; 3-4 儿童戏剧工作坊载体下小学语文戏剧课堂的建构 郭黎明; 5-6《山西教育》投稿&#xff1a;cn7kantougao163.com 文化生态视域下小学英语教学的传统文化融入 周慧娟; 7-8 基于“主题语境”的初中英语课堂教学研究…

公式识别软件免费的有哪些?简单好用的有三款

公式识别软件免费的有哪些&#xff1f;在数字化时代&#xff0c;公式识别软件已经成为科研、教育等领域不可或缺的工具。这些软件能够准确地将图像中的公式转化为可编辑的文本格式&#xff0c;极大地提高了工作效率。为了帮助大家轻松应对公式识别的挑战&#xff0c;今天本文就…

想要成为项目经理?先掌握这24条职场生存法则!

以下是项目经理的24条职场经验&#xff0c;这些经验涵盖了项目管理的各个方面&#xff0c;希望能对项目经理或有意成为项目经理的人有所启发。 1、明确目标&#xff1a;项目成功的关键在于明确的目标。在项目启动之初&#xff0c;确保所有利益相关者对项目目标有清晰、共同的…

绘制一个单级放大电路原理图过程,保姆级教程

新手在学习pads的使用最好最快的方法就是实际上手去画原理图&#xff0c;画PCB图&#xff0c;在这个过程中&#xff0c;就能够更快速得掌握PADS软件的使用。 本篇就是对于实际画原理图过程的一个记录&#xff0c;手把手教学&#xff0c;如果有纰漏或者有更好的一些技巧&#xf…

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引&#xff08;Composite Index&#xff09;是一种索引类型&#xff0c;它由多个列组成。 MySQL的联合索引&#xff08;也称为复合索引&#xff09;是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值&#xff0c;从而提高查询…

怎么下载抖音直播视频 怎么解析直播间链接的视频录制保存

尊敬的读者们&#xff0c;你们好&#xff01;今天我们将探讨一个非常实用的技巧——如何下载直播视频。随着网络技术的发展&#xff0c;直播视频已经成为我们日常生活中不可或缺的一部分。无论是观看比赛、欣赏音乐会还是探索新的美食&#xff0c;直播视频都为我们提供了更直观…

嵌入式数据库概念和基本命令的使用

文章目录 前言一、sqlite数据库概念二、sqlite数据库命令分类和使用1.命令分类1. 系统命令&#xff1a;2. SQLite 命令&#xff1a; 2.系统命令的使用3.sqlite命令的使用 三、sqlite C语言函数的使用和编程方法总结 前言 本篇文章将为大家讲解嵌入式数据库的使用&#xff0c;嵌…

非常简单的长期兼职,无脑复制粘贴,每天稳定200-300+

带货这个概念已经不再陌生&#xff0c;许多人对此产生了浓厚的兴趣。今天&#xff0c;我将向大家介绍一个百家号带货项目&#xff0c;这是我一位朋友正在操作的项目。最近与他交流后&#xff0c;我觉得这个项目具有相当的操作性。他并非只运营了一个账号&#xff0c;而是同时管…

东芝移动硬盘数据恢复方法有哪些

谁能懂我此刻的心情啊&#xff01;移动硬盘用起来真的超级方便&#xff0c;如今我的工作几乎都离不开它&#xff0c;用来存放各种重要文件。可是&#xff0c;让人头疼的事情发生了&#xff0c;昨天我发现移动硬盘里的部分数据竟然莫名其妙地消失了&#xff01;这可咋整啊&#…

【GD32】03 - EXTI外部中断

EXTI EXTI&#xff0c;全称External Interrupt/Event Controller&#xff0c;即外部中断/事件控制器&#xff0c;是微控制器中的一个重要组成部分。它主要用于管理来自外部设备的中断和事件请求。以下是关于EXTI的详细介绍&#xff1a; 功能概述&#xff1a; EXTI管理了控制器的…

n的阶乘(函数)(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明n的阶乘函数fac; int fac(int n);int main() {//初始化变量值&#xff1b;int n, result;//获取要阶乘的数&#xff1b;printf("请输入要阶乘的n&…

Python中进程类Process的方法与属性的使用示例

一、示例代码&#xff1a; from multiprocessing import Process import time import osdef child_1(interval):print(子进程&#xff08;%s&#xff09;开始执行&#xff0c;父进程为&#xff08;%s&#xff09; % (os.getpid(), os.getppid()))t_start time.time()time.sle…

shell脚本中条件语句

一.test测试 在Shell脚本中&#xff0c;test命令用于进行条件测试。它也可以通过方括号[]来表示&#xff0c;因为test实际上是[命令的一个别名。 格式1&#xff1a;test 条件表达式 格式2&#xff1a;[ 条件表达式 ] 注意[ ]空格&#xff0c;否则会失败 测试 是否成功使用…

【opencv】图像处理(二)

前文指引 一、使用到的图片 一、梯度计算 原始图片 img cv2.imread(circle.jpg)plt.imshow(img) plt.show()sobel算子 使用两个核 Gx [[-1,0,1], [-2,0,2], [-1,0,1]] Gy [[-1,-2,-1], [0,0,0], [1,2,1]] dst cv2.Sobel(src, ddepth, dx, dy, ksize) ddepth 深度 -1d…