Spring-SSM框架注解大全-每文一言(知世故而不世故 才是最善良的成熟

 🎐每文一言

知世故而不世故 才是最善良的成熟

🧨🧨主要复习spring框架相关注解

目录

🧨🧨主要复习spring框架相关注解

🎯Spring Framework

🎯Spring MVC

🎯MyBatis

🎯Spring Boot

🎯Lombok

🎯 Knife4j

🎯Spring Validation

🎯Spring有关的常用注解大全


🎯Spring Framework

Spring生态的核心,包含2个核心特性:

  • 第1个:IoC控制反转,是一种编程思想,反转资源的获取方向,把创建对象和管理对象交由框架管理;
  • 第2个:AOP面向切面编程,是一种编程泛型,提高代码的可维护性、可重用性和可扩展性,降低代码的耦合度,集中管理横切关注点的代码,提高开发效率;

🎯Spring MVC

Spring MVC 是Spring框架的一个重要组成部分,提供了一种MVC即模型视图控制器的设计模式实现方式,将应用程序的控制器层、模型层、视图层分离,使得开发人员能够更加高效地构建Web应用程序。

🎯MyBatis

MyBatis是一个数据持久层框架,提供了简单易用的接口,通过对象关系映射让开发者能够更轻松地操作关系型数据库;

主要通过使用SQL语句和配置文件来实现,消除了几乎所有的JDBC代码和参数的手动设置,以及对结果集的检索。

🎯Spring Boot

Spring Boot 是一个快速搭建工程环境的脚手架,核心特性有:

起步依赖:创建项目时,会默认添加基础依赖,简化我们自己查找依赖的过程。

自动配置:在构建Spring应用时,只需添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。

内嵌Web服务:SpringBoot工程支持内嵌的web服务,可以将tomcat这样的服务直接嵌套到web依赖中,并且可以自动将项目打包,并在项目运行时部署到服务器中。

🎯Lombok

Lombok是一个Java库,主要作用有两个:

可以通过注解自动生成 setter getter toString等方法,减少重复代码,提高开发效率;

通过 @Slf4j 注解使用其提供的日志功能,可以有效的帮助开发者调试程序和管理服务器资源消耗

🎯 Knife4j

接口测试:内置了接口测试功能,可以在文档界面上进行接口的测试和调试;
生成离线API文档:通过注解和页面操作,可以直接生成API文档,无需额外的配置和编写文档,提高了开发效率.

🎯Spring Validation

Spring Validation 是一个数据验证框架,用于对Java对象进行校验;

可通过注解的方式对数据进行校验,避免开发人员手动校验数据的同时,又提高了系统的安全性和可靠性,有效地避免非法参数和恶意攻击

🎯Spring有关的常用注解大全

框架注解大全
注解所属框架作用
1@ComponentSpring

添加在类上,标记当前类是组件类

可以通过参数配置 Spring Bean名称

2@ControllerSpring

添加在类上,标记当前类是控制组件类

用法同@Component

3@ServiceSpring

添加在类上,标记当前类是业务逻辑组件类

用法同@component

4@RepositorySpring

添加在类上,标记当前类是数据访问组件类

用法同@component

5@ConfigurationSpring

添加在类上,仅添加次注解的类才会被视为配置类,通常不配注解参数

6@ComponentScanSpring

添加在配置类上,开启组件扫描

如果没有配置包名,则扫描当前配置类所在的包,如果配置类包名,则扫描所配置的包

及其子孙包

7@ValueSpring

添加在属性上,或添加在被Spring调用的

方法的参数上,用于读取 Environment 中的属性值,为对象的属性或方法的参数注入值

8@AutowiredSpring添加在属性上,使得Spring自动装配此属性的值 添加在构造方法上.使得Spring自动调用此构造方法添加在Setter方法上,使得Spring自动调用此方法
9@QualiferSpring

添加在属性上,或添加在方法的参数上

配合自动装配机制,用于指定需要的

Spring Bean的名称

10@ResourceSpring

此注解是javax包中的注解,添加在属性上,

使得Spring自动装配此属性的值

通常不推荐使用此注解

11@ScopeSpring添加在组件类上,或添加在已经添加了@Bean注解的方法上,用于指定作用域,注解参数为 singleton(默认)时为"单例",注解参数为prototype时为"非单例"
12@AspectSpring 

添加切面类上,属于AOP的注解

用于告诉Spring容器将该类识别为一个切面,它定义了切入点(Pointcut)和通过(Advice),切入点定义了在应用程序中哪些方法或者代码块应该被拦截和执行逻辑,通过包括前置通知,返回通知,环绕通知,异常通知和最终通知

13@BeforeSpring

前置通知,添加在切面类的方法上,

在目标方法执行前通知

14@AfterSpring

后置通知,添加在切面类的方法上,

在目标方法执行后通知

15

@AfterReturnig

Spring

返回通知,添加在切面类的方法上

在目标方法正常返回之后执行通知

16@AfterThrowingSpring

异常通知,添加在切面类的方法上

在目标方法抛出异常之后执行的通知

17@AroundSpring

环绕通知,添添加在切面类的方法上

将目标方法封装起来,在目标方法调用之前和调用之后执行自定义的行为,通常使用 try ...catch ...finally 包裹

18@MapperMybatis添加在Mapper接口上,用于标记此接口Mybatis的Mapper接口
19@MapperScanMybatis添加在配置类上,用于指定Mapper接口的跟包,Mybatis将根据此跟包执行扫描,以找到各Mapper接口
20@SelectMybatis添加在Mapper接口的抽象方法上,可以通过此注解直接配置此抽象2方法对应的SQL语句(不必将SQL语句配置在XML文件中),用于配置SELECT类的SQL语句,但是,非常不推荐这种做法
21@InsertMybatis同上,用于配置INSERT类的SQL语句
22@UpdateMybatis同上,用于配置UPDATE类的SQL语句
23@DeleteMybatis同上,用于配置DELETE类的SQL语句
24@ParamMybatis

添加在接口方法参数前,

用于传递多个参数给SQL语句,在Mapper接口定义多个参数时,需要使用@Param注解来标识每个参数的名字,这样Mybatis就可以将参数值绑定到SQL语句中对应的参数上

25@SpringBootApplicationSpring Boot添加在类上,用于标记此类是Spring Boot的启动类,每个Spring Boot 项目应该只要一个类添加了此注解
26@SpringBootTest

Spring

Boot

添加在类上,,用于标记此类是加载Spring 环境的测试类
27@Test

Spring

Boot

添加在方法上,用于标记此方法是Spring 环境测试方法
28@RequestMappingSpring MVC添加在类上,,也可以添加在处理请求的方法上,通常用于配置请求路径
29@ResponseBody

Spring

MVC

添加在类上,,标记此方法是响应正文的,添加类上,标记此类中所有方法都是"响应正文"的
30@RestController

Spring 

MVC

添加在类上,,标记此类上是一个"响应正文"的控制器类
31@PostMapping

Spring

MVC

添加在方法上,是将请求方式限制为"post"的@RequestMapping
32@GetMapping

Spring

MVC

添加在方法上,是将请求方式限制为"get"的@RequestMapping
33@DeleteMapping

Spring

MVC

添加在方法上,是将请求方式限制为"delete"的@RequestMapping
34@PutMapping

Spring

MVC

添加在方法上,是将请求方式限制我"put"的@RequestMapping
35@PathVariable

Spring

MVC

添加在请求参数上用于标记此参数;来自URL的占位符,如果URL的占位符名称与方法的参数名称不同,需要配置此注解来指定URL中的占位符名称
36@RequestBody

Spring

MVC

添加在请求参数上,用于标记此参数必须是对象格式的参数,如果未添加此注解,参数必须是FormData格式的
37 @RequestParam

Spring

MVC

添加在请求参数上,用于将请求参数值绑定到控制器方法的参数上,同时方便使用knife4j测试
38ExceptionHandler

Spring

MVC

添加在方法上,标记此方法是处理异常的方法可以通过配置注解参数来指定需要处理的异常类型,如果没有配置注解参数,所处理的异常类型取决于方法的参数列表中的异常类型
39@ControllerAdvice

Spring

MVC

添加在类上,标记此类中特定的方法将作用于每次处理请求的过程中
40@RestControllerAdvice

Spring

MVC

添加在类上是@ControllerAdvice和@ResponseBody的组合注解
41@DataLombok添加在类上,将在编译期生成此类中所有属性的Setter方法,Get方法,以及hashcode(),equals() ,toString()方法
42@SetterLombok添加在类上,将在编译期生成此类中所有属性的Setter方法,也可以添加在类的属性上,将编译期生成此属性的Setter方法
43@GetterLombok添加在类上,将在编译期生成此类中所有属性的Get方法,也可以添加在此类属性上,将编译期生成此属性的Get方法
44@ToStringLombok添加在类上,将编译期生成给予此类中所有属性的toString()方法
45@NoArgConstructorLombok添加在类上,将在编译期生成此类的无参数构造方法
46@AllArgsConstructLombok添加在类上,将在编译期生成此类的所有属性的全参构造方法
47@ApiKnife4j添加在控制器类上,通过此注解的tag属性配置API文档中的模块名称
48@ApiOperationKnife4j添加在控制器类中处理请求的方法上,用于配置业务名称
49@ApiModelPropertyKnife4j添加在封装的请求参数类型中的属性上,用于配置请求参数的详细说明,包括:名称,数据类型,是否必须相等
50@ApiImplicitParamKnife4j添加在控制器类中处理请求的方法上,用于配置请求参数的详细说明,包括:名称,数据类型,是否相等
51@ApiImplicitParamsKnife4j添加控制器类中处理的方法上,如果需要通过@ApiImplicitParam 注解配置的参数超过1个,则必须将多个@ApiImplicitParam注解作为此注解的参数      
52@ApiIgnoreKnife4j添加在请求参数上,用于标记API文档将不关心此参数
53@Validated

Spring

Validation

添加在方法的参数上,标记此参数需要经过Validation的框架的检查,添加在类上,并结合方法上的检查注解(例如@NotNull 等)实现对为封装的参数检查
54@NotNull

Spring

Validation

添加在需要被检查的参数上,或者添加在需要被检查的封装类型的属性上,用于配置"不允许为null"的检查规则
55@NotEmpty

Spring

Validation

使用位置同@NotNull,用于配置"不允许为空字符串"的检查规则
56@NotBlank

Spring

Validation

使用位置@NotNull,用于配置"不允许为空白"的检查规则
57@Pattern

Spring

Validation

使用位置同@NotNull,用于配置正则表达式的检查规则
58@Range

Spring

Validation

使用位置同@NotNull,用于配置"数值必须在某个取值区"的检查规则

下一篇内容预告✨✨✨✨:Spring Validation

文章后记

最近在搭建公众号-浅羽陪你敲代码_主要分享一下相关有关java代码知识点

感兴趣的朋友可以关注一下😍😍,日常喜欢做一些知识总结,也是为日后寻找合适的工作做准备💪,

如果有志同道合的朋友,希望能留个言,一起进步-一起奋斗(~ ̄▽ ̄)~

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

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

相关文章

WS2812B-Mini是一款将控制电路和RGB芯片集成在3535元器件封装中的智能控制LED光源

一般说明 WS2812B-Mini是一款将控制电路和RGB芯片集成在3535元器件封装中的智能控制LED光源。内部包括智能数字端口数据锁存器和信号整形放大驱动电路。还包括一个高精度的内部振荡器和一个可编程的恒流控制部分,以确保高色彩一致性。 数据传输协议采…

数据结构与算法===优先队列

文章目录 前言一、优先队列二、应用场景三、代码实现总结 前言 之前写过很多数据结构与算法相关的了,今天看一个新的数据结构,优先队列。优先队列类似队列,却又优先于队列,是堆实现的。接下来详细看看。 一、优先队列 优先队列一…

Vue3+TS实现将html或富文本编辑器转为Word并下载

说明:我用的富文本编辑器是wangEditor: wangEditor官网 安装 yarn add wangeditor/editor # 或者 npm install wangeditor/editor --save yarn add wangeditor/editor-for-vuenext # 或者 npm install wangeditor/editor-for-vuenext --save yarn add …

Django + React 全栈开发 demo

视频 https://www.youtube.com/watch?vc-QsfbznSXI 笔记 在windows 系统上开发此项目,Linux 命令有所不同。先写 Django,后写 React。 此项目实现的功能是,用户可以注册并登录网站,创建或删除 note,note 包含 title和…

小程序|手写签名功能如何开启?

老师们可以利用易查分的手写签名功能,在发布查询后,让学生或家长签字确认知晓。下面教大家如何使用吧。 📌使用教程 🔎在哪里开启手写签名? 按照正常流程创建查询后,在查询管理页找到需要开启签名功能的查…

【ggplot、图片导出、字符串、数据框处理】

发现问题的眼睛,面对困难的信心,解决问题的能力 From 生物技能树,R语言基础第六节 文章目录 [TOC](文章目录) 接上次的ggplot1.ggplot几何对象a.局部设置和全局设置b.坐标系c.主题 2.ggplot语法总结a. ggpubr包 3.图片保存的三种方法a.基础包…

HI-TOP网关HT3S-DPM-ECS实现PROFIBUS DP大功率变频器与青岛港口汇川EtherCAT主站PLC通讯互联的案例研究

一、引言 随着工业自动化技术的不断发展,青岛港口寻求提升其物流自动化系统,以提高效率和可靠性,不同品牌和协议的工业设备之间的通讯互联成为了技术实现的重要挑战。在青岛港口,作为该系统核心的变频器和PLC之间需要无缝通讯&…

leetcode.所有可能的路径(python)

找到从节点0到n-1的所有路径,肯定是用dfs算法,不过有两种思考方式: 一种是:从后往前考虑。如果这条路能到n-1节点,那么dfs返回一个rec列表,里面存路径。 class Solution:def allPathsSourceTarget(self, …

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)

1. 题目解析 题目链接:LCR 091. 粉刷房子 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 1. 状态定义 在解决这类问题时,我们首先需要根据题目的具体要求来定义状态。针对房屋粉刷问题&#…

刷题之字母异位词(leetcode 哈希表)

https://leetcode.cn/problems/group-anagrams/ class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>>map;//哈希表键为排序后或者处理后的字符串&#xff0c;值为某…

LeetCode474:一和零

题目描述 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。 代码 /*抽象为两个维度的背包问题 dp[i][j…

认定6月7日截止!合肥市2024年第二批国家高新技术企业申报条件、流程和材料

合肥市2024年第二批国家高新技术企业认定截止在6月7日&#xff0c;关于合肥市高新技术企业认定条件、申报材料、流程的详细内容整理如下&#xff1a; 一、申报范围 &#xff08;一&#xff09;在我市行政区域内注册成立一年以上的居民企业&#xff0c;且符合《认定办法》第十一…