SSM框架注解大全

先赞后看,养成习惯!!!❤️ ❤️ ❤️
文章码字不易,如果喜欢可以关注我哦!
​如果本篇内容对你有所启发,欢迎访问我的个人博客了解更多内容:链接地址

SSM框架注解大全

  • 三大框架注解

Spring + Spring MVC + MyBatis

  • 其他框架注解
    • Spring Boot
    • Lombok
    • Knife4j
    • Spring Validation

注解

所属框架

作用

1

@Component

Spring

添加在类上,标记当前类是组件类,可以通过参数配置Spring Bean名称

2

@Controller

Spring

添加在类上,标记当前类是控制器组件类,用法同@Component

3

@Service

Spring

添加在类上,标记当前类是业务逻辑组件类,用法同@Component

4

@Repository

Spring

添加在类上,标记当前类是数据访问组件类,用法同@Component

5

@Configuration

Spring

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

6

@ComponentScan

Spring

添加在配置类上,开启组件扫描。 如果没有配置包名,则扫描当前配置类所在的包, 如果配置了包名,则扫描所配置的包及其子孙包

7

@Value

Spring

添加在属性上,或添加在被Spring调用的方法的参数上,用于读取Environment中的属性值,为对象的属性或方法的参数注入值

8

@Autowired

Spring

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

9

@Qualifier

Spring

添加在属性上,或添加在方法的参数上, 配合自动装配机制,用于指定需要装配的Spring Bean的名称

10

@Resource

Spring

此注解是javax包中的注解, 添加在属性上,使得Spring自动装配此属性的值, 通常不推荐使用此注解

11

@Scope

Spring

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

12

@Mapper

Mybatis

添加在Mapper接口上,用于标记此接口是Mybatis的Mapper接口

13

@MapperScan

Mybatis

添加在配置类上,用于指定Mapper接口的根包,Mybatis将根据此根包执行扫描,以找到各Mapper接口

14

@Select

Mybatis

添加在Mapper接口的抽象方法上,可以通过此注解直接配置此抽象方法对应的SQL语句(不必将SQL语句配置在XML文件中),用于配置SELECT类的SQL语句,但是,非常不推荐这种做法

15

@Insert

Mybatis

同上,用于配置INSERT类的SQL语句

16

@Update

Mybatis

同上,用于配置UPDATE类的SQL语句

17

@Delete

Mybatis

同上,用于配置DELETE类的SQL语句

18

@SpringBootApplication

Spring Boot

添加在类上,用于标记此类是Spring Boot的启动类,每个Spring Boot项目应该只有1个类添加了此注解

19

@SpringBootTest

Spring Boot

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

20

@Test

Spring Boot

添加在方法上,用于标记此方法是Spring环境的测试方法

21

@RequestMapping

Spring MVC

添加在类上,也可以添加在处理请求的方法上, 通常用于配置请求路径

22

@ResponseBody

Spring MVC

添加在方法上,标记此方法是“响应正文”的, 添加在类上,标记此类中所有方法都是“响应正文”的

23

@RestController

Spring MVC

添加在类上,标记此类是一个“响应正文”的控制器类

24

@GetMapping

Spring MVC

添加在方法上,是将请求方式限制为GET的@RequestMapping

25

@PostMapping

Spring MVC

添加在方法上,是将请求方式限制为POST的@RequestMapping

26

@DeleteMapping

Spring MVC

添加在方法上,是将请求方式限制为DELETE的@RequestMapping

27

@PutMapping

Spring MVC

添加在方法上,是将请求方式限制为PUT的@RequestMapping

28

@PathVariable

Spring MVC

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

29

@RequestBody

Spring MVC

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

30

@ExceptionHandler

Spring MVC

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

31

@ControllerAdvice

Spring MVC

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

32

@RestControllerAdvice

Spring MVC

添加在类上,是@ControllerAdvice和@ResponseBody的组合注解

33

@Data

Lombok

添加在类上,将在编译期生成此类中所有属性的Setter、Getter方法,及hashCode()、equals()、toString()方法

34

@Setter

Lombok

添加在类上,将在编译期生成此类中所有属性的Setter方法,也可以添加在类的属性上,将在编译期生成此属性的Setter方法

35

@Getter

Lombok

添加在类上,将在编译期生成此类中所有属性的Getter方法,也可以添加在类的属性上,将在编译期生成此属性的Getter方法

36

@ToString

Lombok

添加在类上,将在编译期生成基于此类中所有属性的toString()方法

37

@NoArgConstructor

Lombok

添加在类上,将在编译期生成此类的无参数构造方法

38

@AllArgsConstructor

Lombok

添加在类上,将在编译期生成基于此类中所有属性的全参构造方法

39

@Api

Knife4j

添加在控制器类上,通过此注解的tags属性配置API文档中的模块名称

40

@ApiOperation

Knife4j

添加在控制器类中处理请求的方法上,用于配置业务名称

41

@ApiModelProperty

Knife4j

添加在封装的请求参数类型中的属性上,用于配置请求参数的详细说明,包括:名称、数据类型、是否必须等

42

@ApiImplicitParam

Knife4j

添加在控制器类中处理请求的方法上,用于配置请求参数的详细说明,包括:名称、数据类型、是否必须等

43

@ApiImplicitParams

Knife4j

添加在控制器类中处理请求的方法上,如果需要通过@ApiImplicitParam注解配置的参数超过1个,则必须将多个@ApiImplicitParam注解作为此注解的参数

44

@ApiIgnore

Knife4j

添加在请求参数上,用于标记API文档中将不关心此参数

45

@Valid

Spring Validation

添加在方法的参数上,标记此参数需要经过Validation框架的检查

46

@Validated

Spring Validation

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

47

@NotNull

Spring Validation

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

48

@NotEmpty

Spring Validation

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

49

@NotBlank

Spring Validation

使用位置同@NotNull,用于配置“不允许为空白”的检查规则

50

@Pattern

Spring Validation

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

51

@Range

Spring Validation

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

附加

@Controller

类注解,在springMVC控制器类定义上方

作用是设定springMVc的核心控制器bean

@RequestMapping

@ResponseBody

名称

@ResponseBody

类型

类注解或方法注解

位置

SpringMVC控制器类或方法定义上方

作用

  • 设置当前控制器方法响应内容为当前返回值,无需解析
  • 写在类上,该类的所有方法都有该注解功能
  • 把java数据转换成json数据格式

@RequestParam

@RequestParam

类型

形参注解

位置

SpringMVC控制器方法形参定义前面

作用

绑定请求参数与处理器方法形参间的关系

相关参数

required:是否为必传参数 defaultValue:参数默认值

@EnableWebMvc

==注意:SpringMVC的配置类把@EnableWebMvc当做标配配置上去,不要省略==

名称

@EnableWebMvc

类型

==配置类注解==

位置

SpringMVC配置类定义上方

作用

开启SpringMVC多项辅助功能

@RequestBody

名称

@RequestBody

类型

==形参注解==

位置

SpringMVC控制器方法形参定义前面

作用

将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次

@RequestBody与@RequestParam区别

  • 区别
    • @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】
    • @RequestBody用于接收json数据【application/json】
  • 应用
    • 后期开发中,发送json格式数据为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数

@DateTimeFormat

名称

@DateTimeFormat

类型

==形参注解==

位置

SpringMVC控制器方法形参前面

作用

设定日期时间型数据格式

相关属性

pattern:指定日期时间格式字符串

@PathVariable

名称

@PathVariable

类型

==形参注解==

位置

SpringMVC控制器方法形参定义前面

作用

绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应

关于接收参数,我们学过三个注解@RequestBody、@RequestParam、@PathVariable,这三个注解之间的区别和应用分别是什么?

  • 区别
    • @RequestParam用于接收url地址传参或表单传参
    • @RequestBody用于接收json数据
    • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
  • 应用
    • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数
    • 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

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

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

相关文章

Huffman树实现文件压缩

【问题描述】给定一个文件,文件由n个字符组成,但他们出现的频度不相同。要求对该文件中的字符集构造哈夫曼树,并计算编码后的文件长度。 【输入形式】 输入的第1行有1个数字n,表示文件中总的字符个数。接下来1行中有n个数字&…

跨境电商竞品分析:洞察市场,赢得先机的关键策略

在全球化日益加速的今天,跨境电商已经成为了企业拓展市场、提高销售额的重要手段。然而,跨境电商市场的竞争也日趋激烈,如何在众多竞争对手中脱颖而出,成为每个企业都面临的挑战;想要做到这点,了解竞品情况…

Apache Doris (六十一): Spark Doris Connector - (1)-源码编译

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. Spark Doris Connector…

vue3中状态管理库pinia的安装和使用方法介绍及和vuex的区别

Pinia 与 Vuex 一样,是作为 Vue 的“状态存储库”,用来实现 跨页面/组件 形式的数据状态共享。它允许你跨组件或页面共享状态。如果你熟悉组合式 API 的话,你可能会认为可以通过一行简单的 export const state reactive({}) 来共享一个全局状…

【Python】开始你的Python之旅(Anaconda、Pycharm、Jupyter)

Python工具准备 下载安装AnacondaPycharmJupyter Notebook 启动使用AnacondaPycharmJupyter Notebook 引言: 信息时代,计算机引领。人工智能,Python是基础。信息时代学习好Python乃是在人工智能时代的立足之本。 本文: 做好Pyth…

开发者必备的 Github 加速工具(截至2024年01月)

开始闲聊前,我要感谢大神小青龍总结的博文:作为程序员不得不知道的几款Github加速神器,给我们介绍了常用(较为合规😄)的加速方法。毕竟 github 是开发者绕不过的宝库。 背景 我用 Github 将近12年&#x…

JS鼠标事件总结学习

首先我们先简单过一遍鼠标MouseEvent事件: click: 当鼠标单击元素时触发。dblclick: 当鼠标双击元素时触发。mousedown: 当按下鼠标按钮时触发。mouseup: 当释放鼠标按钮时触发。mousemove: 当鼠标指针在元素上移动时触发。mouseover: 当鼠标指针移动到元素上方时触…

C++精进之路之路(九)内存模型和名称空间

C鼓励程序员在开发程序时使用多个文件。一种有效的组织策略是,使用头文件来定义用户类型,为操纵用户类型的两数提供两数原型:并将两数定义放在一个独立的源代码文件中。头文件和源代码文代一起定义和实现了用户定义的类型及其使用方式。最后&…

初步认识架构分层

一般初创软件,为快速上线,几乎不考虑分层。但随业务越发复杂,就会导致逻辑复杂、模块相互依赖、代码扩展性差等各种问题。 架构分层迫在眉睫。 1 什么是架构分层? 软件工程中常见的设计方式,将整体系统拆分成N个层次,…

C#进制--2进制、10进制、16进制(Modbus通讯部分)详解

引言:最近接触了一些通讯方面信息,写个小结记录一下,即时更新 1.二进制数: 是计算技术中经常采用的一种数制。二进制数据是由0和1两个基本数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是…

软件测试错题集(黑盒、白盒测试)

所有判断题第二个选项是正确答案 1.[判断题] 不存在质量很高但可靠性很差的产品。 错 对 2.[判断题] 软件测试按照测试过程分类为黑盒、白盒测试。 对 错 3.[判断题] 从软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑用户是否可接受该产品。 …

3D空间漫游技术的日趋成熟,让博物馆数字化大放异彩!

随着科技的飞速发展,互联网已经成为人们生活中不可或缺的一部分。在这个数字化时代,博物馆也紧跟时代潮流,将传统的实体博物馆与现代科技相结合,诞生了一种全新的博物馆形式——3D线上博物馆。这种新型博物馆凭借其独特的魅力&…

Flutter 三点三:Dart Stream

Stream Stream用于接收异步事件Stream 可以接收多个异步事件Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件 基本使用 Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";})…

SemCms外贸网站商城系统 SQL注入漏洞复现(CVE-2023-50563)

0x01 产品简介 SemCms是国内团队打造的专门针对外贸网站的开源CMS,主要用于外贸企业,兼容IE,Firefox等主流浏览器。建设商城性质的外贸网站,多语言(小语种)网站。 0x02 漏洞概述 SemCms外贸网站商城系统SEMCMS_Function.php 中的 AID 参数存在SQL注入漏洞,未经身份认…

数据库:基础SQL知识+SQL实验2

(1)基础知识: 1.JOIN(连接): 连接操作用于根据指定的条件将两个或多个表中的数据行合并在一起。JOIN 可以根据不同的条件和方式执行,包括等值连接、不等值连接等。 (1&#xff09…

自制Java镜像发布到dockerhub公网使用

文章目录 问题现象解决制作Java镜像发布使用 问题现象 书接上回,上周处理了一个docker问题,写了篇博客:自定义docker镜像,ubuntu安装命令并导出我们使用谷歌的jib插件打包,详情可以参考这篇文章:Spring Bo…

联想M7400加粉后如何清零

联想M7400黑白激光多功能打印一体机加粉后清零方法: 吴中函 加粉后,确保硒鼓已经被正确安装并且机器已经通电。 1、打开前盖,以便进行后续的操作。 2、按下“清除/返回”键,这会触发一个屏幕提示:提示内容为“更换…

ros2 ubuntu 20.04 安装 foxy

设置区域设置 确保您有一个支持UTF-8. 如果您处于最小环境(例如 docker 容器)中,则区域设置可能是最小的,例如POSIX. 我们使用以下设置进行测试。但是,如果您使用不同的 UTF-8 支持的区域设置,应该没问题。…

VM安装虚拟机及初始化操作

一、VM下载及暗转 虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,在实体计算机中能够完成的工作在虚拟机中都能够实现。VMware 是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的…

python毕设选题 - flink大数据淘宝用户行为数据实时分析与可视化

文章目录 0 前言1、环境准备1.1 flink 下载相关 jar 包1.2 生成 kafka 数据1.3 开发前的三个小 tip 2、flink-sql 客户端编写运行 sql2.1 创建 kafka 数据源表2.2 指标统计:每小时成交量2.2.1 创建 es 结果表, 存放每小时的成交量2.2.2 执行 sql &#x…