spring的常用注解

news2025/1/9 15:41:55

       📝个人主页:五敷有你      
 🔥系列专栏:Spring
⛺️稳中求进,晒太阳

Spring框架注解:

给容器中注入组件

(1)包扫描+组件标注注解

@Component:

        用于标识一个类作为组件(Component),可以将类交由Spring容器管理,实现组件的自动扫描、实例化、依赖注入和配置管理等功能。当类不属于其他特定层(如控制层、服务层、数据访问层)时,可以使用此注解。

@Repository:

        标识一个类作为数据访问层组件(Repository),主要用于标注数据访问层或DAO组件。通过该注解,可以将类交由Spring容器管理,享受依赖注入、事务管理、AOP等功能。

@Service:

        标识一个类作为服务层组件,主要用于进行业务逻辑处理。Spring容器能够自动识别并实例化服务层组件,并能够自动将请求映射到对应的服务方法进行处理。

@Controller:

        标识一个类作为控制层组件(Controller),用于处理HTTP请求。Spring容器能够自动识别并实例化控制器层组件,并能够自动将请求映射到对应的控制器方法进行处理。

(2)@Bean 导入第三方包里面的注解
(3)@Import()

@ImportSelector:返回需要导入的组件的全类名数组;

@ImportBeanDefinitionRegistrar:手动注册bean到容器中

注入bean的注解

@Autowired:

用于自动装配bean,可以自动将依赖的对象注入到需要该对象的bean中。这可以消除Java代码中的getter/setter方法和bean属性中的property。

@Resource :

此注解是Java EE规范中的注解,也可以用于自动装配bean。与@Autowired不同的是,@Resource可以通过name属性指定bean的名称,如果没有指定name属性,则会默认按照bean的名称进行自动装配。

@ResponseBody:

        用于将返回结果直接写入HTTP响应体中,通常与@Controller注解一起使用,将Java对象转换为JSON格式的数据返回给客户端。

@Configuration:

        标识当前类是配置类,它包含了一个或多个@Bean注解的方法,这些方法会被Spring容器处理,用于生成bean定义和服务请求所需的对象。

@Bean :

        在@Configuration注解的类中,通过@Bean注解的方法可以定义并初始化Bean,然后由Spring的IOC容器来管理这些Bean。

@Scope:

        用于指定bean的作用域,如"singleton"、"prototype"等。

@Lazy :

        用于延迟bean的初始化,即在第一次请求时才会进行初始化。

@PostConstruct:

        在依赖注入完成后,执行初始化方法。

@PreDestroy:

        在bean销毁之前执行的方法。

@Qualifier :

        与@Autowired注解配合使用,用于按照名称装配bean。

@Value:

                用于为属性赋值,支持基本数据类型、String、SpEL表达式等。

@PropertySource:

        加载指定路径的配置文件(如.properties文件)。

@Aspect:

        用于声明一个类为切面类,切面类中可以定义通知和切点。

@Before:

        前置通知,在目标方法被调用之前执行。

@After:

        后置通知,在目标方法执行之后执行(无论方法是否成功完成)。

@AfterReturning:

        返回通知,在目标方法正常执行完成后执行,通常可以访问到目标方法的返回值。此注解可以指定一个返回值形参名,如` @AfterReturning(pointcut = "execution(* com.example.service.*.*(..))", returning = "result")`。

@AfterThrowing:

        异常通知,在目标方法抛出异常后执行。此注解可以指定一个形参名来访问抛出的异常对象,如`@AfterThrowing(pointcut = "execution(* com.example.service.*.*(..))", throwing = "ex")`。

@Around:

        环绕通知,在目标方法执行前后都可以执行自定义的逻辑,可以控制目标方法的执行。

@Pointcut:

        用于定义切点,即一个或多个连接点的集合。通过切点表达式,可以指定哪些方法的执行需要进行拦截。例如,`@Pointcut("execution(* com.example.service.*.*(..))")`定义了一个切点,用于拦截`com.example.service`包下所有类的所有方法的执行。

@Valid

        用于参数校验。

@Transactional:

        用于声明事务管理

2. SpringMVC框架注解:

@RequestMapping:

        用于定义请求的URL映射,可以指定请求的方法、请求路径等信息。它可以用在类或方法上,用于类或方法级别的请求映射。

@RequestParam:

         用于获取请求参数的值,将请求参数绑定到方法参数上。

@ModelAttribute:

        用于绑定请求参数到数据模型上,常用于表单数据的绑定和校验。

@Controller:

        标识一个类为Spring MVC的控制器类。此类通常包含处理HTTP请求的方法。

@RequestMapping:

        用于映射请求URL到特定的处理器方法或处理器类。它可以定义在类级别或方法级别。在类级别定义时,它将所有请求URL映射到该类中的方法;在方法级别定义时,它将特定的请求URL映射到该方法。

   @GetMapping, @PostMapping, @PutMapping, @DeleteMapping,@PatchMapping**:这些是`@RequestMapping`的特殊化版本,用于处理HTTP GET、POST、PUT、DELETE和PATCH请求。例如,`@GetMapping("/hello")`等同于`@RequestMapping(value = "/hello", method = RequestMethod.GET)`。

@PathVariable:

        用于从请求URL中提取路径变量的值,并将其绑定到方法的参数上。路径变量是URL模板中的一部分,由大括号`{}`包围。

@RequestParam:

        用于从请求参数中绑定值到方法的参数上。这些参数可以是查询字符串中的参数,也可以是表单数据。

@ResponseBody:

        表示该方法的返回值应该被绑定到响应体上。通常与`@RequestMapping`一起使用,返回JSON或XML数据。

@RestController:

        这是`@Controller`和`@ResponseBody`的组合。它表示该类中的所有方法都将返回数据绑定到响应体上,而不是视图名称。

3. MyBatis框架注解:

@Mapper:

        用于标注DAO层接口,并交由MyBatis框架进行实现。通过该注解,MyBatis可以自动扫描并加载接口的实现类,实现接口的自动映射。

@Select、@Insert、@Update、@Delete:

        分别用于标注查询、插入、更新和删除语句的SQL映射。这些注解可以直接写在接口方法上,代替XML映射文件中的SQL语句。

@Result:

        用于指定将结果集的列和Java对象属性之间的映射关系。它可以在@Select等注解的方法中使用,定义结果集与Java对象之间的映射关系。

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

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

相关文章

【数据结构(十)】Map和Set

❣博主主页: 33的博客❣ ▶️文章专栏分类:数据结构◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你学更多数据结构知识 目录 1.前言2.搜索树2.1 概念2.2实现二叉搜索树 2.4性能分析3.搜索3.Map3.1Map说明3.2 M…

【UnityRPG游戏制作】Unity_RPG项目之场景环境搭建和解析

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

图论之最短路算法模板总结

来个大致的分类&#xff1a; 朴素的迪杰斯特拉&#xff1a; 实现&#xff1a; 我们让s表示当前已经确定的最短距离的点&#xff0c;我们找到一个不在s中的距离最近的点t&#xff0c;并用t来更新其他的点。 下面是AC代码&#xff1a; #include<bits/stdc.h> using nam…

C++之const用法小结

在C中&#xff0c;const关键字具有多种用法&#xff0c;主要用于声明常量&#xff0c;确保某些变量的值在程序运行期间不会被修改。以下是const在C中的一些常见用法&#xff1a; 1.声明常量&#xff1a; 使用const声明的变量是常量&#xff0c;其值在初始化后不能再被修改。 …

关于海康相机和镜头参数的记录

对比MV-CS020-10UC和大家用的最多的MV-CS016-10UC 其实前者适合雷达站使用&#xff0c;后者适合自瞄使用 一&#xff1a;MV-CS020-10UC的参数 二&#xff1a;对比 三&#xff1a;海康镜头选型工具

mysql从入门到起飞+面试基础题

mysql基础 MySQL基础 企业面试题1 代码 select m.id,m.num from ( select t.id as id,count(1) num from ( select ra.requester_id as id from RequestAccepted raunion all select ra.accepter_id as id from RequestAccepted ra ) t group by t.id ) m group by id ord…

C++学习第十八课:STL中的`string`类深度解析

C学习第十八课&#xff1a;STL中的string类深度解析 在C标准模板库&#xff08;STL&#xff09;中&#xff0c;std::string是一个提供了大量功能和操作的类&#xff0c;用于处理和存储字符串数据。std::string不仅包含了传统的C风格字符串&#xff08;如char*&#xff09;所提…

算法二:DOM - 将DOM节点元素转换成JSON字符串

题目&#xff1a; 将DOM节点元素转换成JSON的格式 例如 <div class"root"><div class"child1"><p></p></div><span></span><div><div><p></p></div></div><p></…

XY_RE复现(六)

馒头 考数据结构的好像 有一个建树的函数 __int64 __fastcall initHuffmanTree(void **a1) {__int64 v1; // rcx__int64 v2; // rdxchar v4; // [rsp27h] [rbp-9h]int j; // [rsp28h] [rbp-8h]int i; // [rsp2Ch] [rbp-4h]*a1 malloc(0x3C0ui64);for ( i 1; i < 47; i )…

OpenGL 入门(一)—— OpenGL 基础

1、OpenGL 基础知识 1.1 OpenGL 简介 OpenGL&#xff08;Open Graphics Library&#xff09;是图形领域的工业标准&#xff0c;是一套跨编程语言、跨平台、专业的图形编程&#xff08;软件&#xff09;接口。它用于二维、三维图像&#xff0c;是一个功能强大&#xff0c;调用…

一个C++小程序调试过程记录

Top 20 C Projects With Source Code [2024 Update]https://www.interviewbit.com/blog/cpp-projects/ 这个网页有一些简单的C程序的源码&#xff0c;闲来无事&#xff0c;把第一个程序&#xff08;Bookshop Management System Using C&#xff09;的源码下载了下来。 源文件…

在 Vue.js 2.x 中使用 WebSocket 与 Spring Boot 2.7 实现通信

前言&#xff1a;近期在研究远程遥控空调&#xff0c;需要通过接口记录前端的一些动作&#xff0c;那么前端需要实现主动通知接口&#xff0c;并接收来自接口的通知。 一、方案 通过在Vue.js 2.x 中使用 WebSocket 与 Spring Boot 2.7 实现通信&#xff0c;使用 STOMP&#xf…

【openLooKeng集成Hive连接器完整过程】

【openLooKeng集成Hive连接器完整过程】 一、摘要二、正文2.1 环境说明2.2 Hadoop安装2.2.1. 准备工作2.2.2 在协调节点coordinator上进行安装hadoop2.2.3、将Hadoop安装目录分发到从节点worker2.2.4、在协调节点coordinator上启动hadoop集群2.3 MySQL安装2.4 Hive安装及基本操…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展&#xff0c;建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求&#xff0c;设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…

从C到Py:Python的异常处理

本篇文章中我们将简单讲解一下有关Python中的异常处理&#xff0c;既有在代码中有显式表达的异常处理语法&#xff0c;还包括Pycharm手动调试的简单操作。 目录 Python异常处理 1、try-except结构 ​编辑 2、try-except-else结构 raise抛出异常 常见异常类型 Pycharm程序…

神经网络中常见的激活函数:理解与实践

神经网络中常见的激活函数&#xff1a;理解与实践 在神经网络中&#xff0c;激活函数是一个非常重要的组成部分&#xff0c;它为神经元引入了非线性特性&#xff0c;使得神经网络可以拟合各种复杂的函数关系。本文将介绍9种常见的激活函数&#xff0c;包括它们的概述、公式以及…

安卓中级控件(图形、选择按钮、文本输入、对话框)

图形定制 图形Drawable Android把所有能够显示的图形都抽象为Drawable类&#xff08;可绘制的&#xff09;。这里的图形不止是图片&#xff0c;还包括色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下&#xff0c;其中drawable目录一般保存描述性…

相机知识的补充

一&#xff1a;镜头 1.1MP的概念 相机中MP的意思是指百万像素。MP是mega pixel的缩写。mega意为一百万&#xff0c;mega pixel 指意为100万像素。“像素”是相机感光器件上的感光最小单位。就像是光学相机的感光胶片的银粒一样&#xff0c;记忆在数码相机的“胶片”&#xff…

windows 驱动开发-DMA技术(二)

前面描述了DMA技术中适配器相关的部分以及DMA的分类&#xff0c;接下来看一下系统具体在支持两种DMA时候的操作的细微差别。 此处解释一下Scatter/Gather&#xff0c;这个也翻译为散点/收集&#xff0c;是指指示设备能够读取或写入内存中的任何区域&#xff0c;而不仅仅是特定…

YOLO系列改进,自研模块助力涨点

目录 一、原理 二、代码 三、添加到YOLOv5中 一、原理 论文地址: