Spring中@Service 、@Component、@Repository等注解区别是什么?

news2024/12/27 13:10:28

一、问题解析

在Spring框架中,有很多用来声明Spring管理的bean的常用注解。它们都是@Component的特化形式,用于指定不同类型的组件,主要有以下几个:

1@Component:是一个通用的组件声明注解,表示该类是一个Spring组件。它可以用于任何Spring管理的组件。
2@Service:通常用于标记服务层的组件。虽然它本质上与@Component相同,但这个注解表示该类属于服务层,这有助于区分不同层次的组件。
3@Repository:用于标记数据访问层的组件,即DAO(Data Access Object)层。这个注解除了将类标识为Spring组件之外,还能让Spring为它提供一些持久化特定的功能,比如异常转换。
4@Controller:用于标记控制层的组件,特别是在Spring MVC中用于定义控制器类。这个注解通知Spring该类应当作为控制器处理HTTP请求。

这些注解在Spring框架中的主要区别在于它们的语义意图,在功能上几乎没有差异!只是为了让我们识别出我们标注的Bean到底是个什么角色,是一个Service、还是一个Repository、又或者是一个Controller。

二、粉丝福利

我是浮生,一个工作十四年经验的Java程序员!

最近很多同学问我有没有java学习资料,我根据我从小白到架构师多年的学习经验整理出来了一份80W字面试解析文档、简历模板、学习路线图、java必看学习书籍 、 需要的小伙伴 可以关注我
公众号:“ 
灰灰聊架构 ”, 回复暗号:“ 321 ”即可获取

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

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

相关文章

利用PSR,三步实现业务快速加载

01 什么是PSR PSR是通信业界在BSS/OSS域面向产品设计和业务开通过程中提出的一个标准化信息分层解耦和映射的框架,按照国际电信论坛TMF推荐的SID信息框架的标准,主要分为产品域、服务域和资源域等三层,支撑通信业务的快速加载和敏捷开通。 TM…

【LeetCode: 4. 寻找两个正序数组的中位数 + 二分查找】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

海外客户获取难?海外云手机助力电商引流!

海外电商面临的市场竞争激烈,如何在海外市场获客成为了摆在许多卖家面前的难题。而在这个问题的解决方案中,海外云手机崭露头角,成为助力电商引流的新利器。 在当前市场中,云手机主要用于游戏挂机,但其潜力在海外电商领…

什么是虚拟线程?

1、典型回答 Java 中的虚拟线程,也叫做协程或“轻量级线程”,它诞生于JDK 19(预览 API),正式发布于 JDK 21,它是一种在 Java 虚拟机(JVM)层面实现的逻辑线程,不直接和操作系统的物理线程一一对应,因此它可…

Anaconda配置系统环境

首先,右键此电脑,点击属性 点击高级系统设计 点击环境变量 点击环境变量中系统环境下的Path,双击 如下图,添加这四项即可,注意,这都是Anaconda的安装目录下的内容 在windowsR的cmd情况下,输入co…

leetcode LCR121.寻找目标值-二维数组

目录 问题描述示例具体思路思路一思路二 代码实现 问题描述 m*n 的二维数组 plants 记录了园林景观的植物排布情况,具有以下特性: 每行中,每棵植物的右侧相邻植物不矮于该植物; 每列中,每棵植物的下侧相邻植物不矮于该…

刷题DAY27 | LeetCode 39-组合总和 40-组合总和II 131-分割回文串

39 组合总和(medium) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates…

电脑中msvcp140_codecvt_ids.dll丢失的解决方法,实测有效的方法

在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是缺少某个DLL文件。而msvcp140CODECVTIDS.dll就是其中之一。那么,msvcp140CODECVTIDS.dll是什么?msvcp140CODECVTIDS.dll文件属性又是什么呢?msvcp140C…

抖音小店怎么选品?从六点下手,才能选出爆款产品!

大家好,我是电商糖果 选品是做店的核心,它直接关系到店铺的流量和转化率,也就是店铺的收益。 这也是糖果在以往的文章中反复强调的,选品可以说非常重要了。 关于新手选品不知道从何下手,糖果自己总结了一下选品需要…

C++项目——集群聊天服务器项目(五)网络模块与业务模块

今天来正式书写集群聊天服务器网络模块与部分业务模块的代码 环境搭建C项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置-CSDN博客 Json第三方库 muduo网络库 MySQL数据库 一、工程目录创建 项目通过CMake编译&#xff0c…

C语言例4-2:判断某些字符型变量中存放的是否为大写字母或数字字符。

代码如下&#xff1a; //判断某些字符型变量中存放的是否为大写字母或数字字符。 #include<stdio.h> int main(void) {int x1, x2, x3, x4; //数据定义语句char c1a, c2B, c31, c4!; //数据定义语句x1c1>A&&c1<Z; //表达式判断c1是否…

安卓studio连接手机之后,一两秒之后就自动断开了。问题解决。

太坑了&#xff0c;安卓studio链接手机之后。几秒之后就断开了。我以为是adb的问题&#xff0c;就重新安装了一下adb。并且在环境变量中配置了Path的路径。然而并没有什么用啊。 经过排查原来是数据心虚了。线的接触不良。导致你刚接通的瞬间有相对较强的电流是因为有瞬间高电压…

精酿啤酒:酿造工艺的细节与品质的关联

啤酒的酿造工艺是一个复杂而精细的过程&#xff0c;每一个环节都可能影响的品质和口感。Fendi Club啤酒作为一家注重品质和口感的品牌&#xff0c;在酿造工艺的细节方面有着严格的要求和杰出的技艺。 原料的选择是决定啤酒品质的重要因素之一。Fendi Club啤酒选用上好的大麦、水…

【日常记录】【CSS】css实现汉堡菜单

文章目录 1、介绍2、布局3、鼠标移入变成 X 1、介绍 在移动端或者响应式中&#xff0c;可能会遇到 三个横线 鼠标移动到的时候&#xff0c;会变成 一个 X 符号&#xff0c;这个就是汉堡菜单 2、布局 <style>* {margin: 0;padding: 0;box-sizing: border-box;}body {displ…

ros找不到生成的可执行文件[rosrun] Couldn‘t find executable named hello_world_cpp below

catkin_make之后source ./devel/setup.bash source之后运行节点的时候,ros找不到可执行文件&#xff08;其实tab键补不齐就没找到了&#xff09; 手动查找发现生成的可执行文件在build下不在devel/lib下&#xff0c;所以白source&#xff0c;压根找不到。 查找原因说是因为CMa…

基于 C++ STL 的图书管理系统213行

定制魏&#xff1a;QTWZPW&#xff0c;获取更多源码等 目录 一、实践项目名称 二、实践目的 三、实践要求 四、实践内容 五、代码框架参考 六、代码效果展示 七、完整代码主函数展示 一、实践项目名称 基于 C STL 的图书管理系统 二、实践目的 通过设计和实现一个基于…

NAT---网络地址转换技术

Network Address Translation 1、起源&#xff1a;ip地址不够用 2、作用&#xff1a;让私网地址映射成公网地址&#xff0c;进而访问网络。 3、私网Ip地址的范围&#xff1a; A类&#xff1a;10.0.0.0-10.255.255.255 B类&#xff1a;172.16.0.0-172.31.255.255 C类&…

【八股】Java 线程状态转化

线程一共有六种状态 1. NEW - 新建 public static void main(String[] args) throws ExecutionException, InterruptedException {Thread t new Thread(() -> {System.out.println("running");}, "t1");System.out.println(t.getState()); // 线程创…

【MySQL系列】Public Key Retrieval is not allowed

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

简单学习下MQTT(2)

MQTT 简介 MQTT 是非常简单的协议&#xff0c;最初由 IBM 的两位工程师 Andy Stanford-Clark 以及 Arlen Nipper 在 1999 年为监控输油管道设计的。它被设计的场景就是有限的带宽、轻量级以及很小的耗电量&#xff0c;在那个时候&#xff0c;卫星宽带就是那么小&#xff0c;且…