Spring Boot的常用注解
Spring Boot 常用注解 主要分为以下几类:
- Spring 核心注解
- Spring Boot 相关注解
- Spring MVC 相关注解
- Spring Data JPA 相关注解
- Spring 事务管理
- Spring Security 相关注解
- Spring AOP 相关注解
- Spring 其他常用注解
下面是详细分类和表格展示👇:
1. Spring 核心注解
| 注解 | 说明 |
|---|---|
@Component | 标注通用组件,Spring 容器会自动扫描并注册为 Bean |
@Service | 标注服务层组件,作用和 @Component 相同,但语义更明确 |
@Repository | 标注持久层(DAO)组件,主要用于数据访问层,Spring 还会对其异常进行转换 |
@Controller | 标注控制层组件,用于 MVC Controller |
@RestController | @Controller + @ResponseBody,用于返回 JSON 数据的 RESTful API |
@Configuration | 标注配置类,可替代 XML 配置文件 |
@Bean | 在 @Configuration 类中使用,用于手动定义 Bean |
@ComponentScan | 指定 Spring 自动扫描的包路径,默认扫描当前包及其子包 |
2. Spring Boot 相关注解
| 注解 | 说明 |
|---|---|
@SpringBootApplication | Spring Boot 核心注解,包含 @Configuration、@EnableAutoConfiguration、@ComponentScan |
@EnableAutoConfiguration | 自动配置,根据类路径下的依赖自动配置 Spring Boot 应用 |
@ConditionalOnClass | 条件加载,当指定类存在时才进行 Bean 的自动配置 |
@ConditionalOnMissingBean | 条件加载,当容器中不存在指定 Bean 时才创建 |
@SpringBootTest | 用于测试 Spring Boot 应用 |
@EnableConfigurationProperties | 使 @ConfigurationProperties 注解的类生效 |
3. Spring MVC 相关注解
| 注解 | 说明 |
|---|---|
@RequestMapping | 映射请求路径,可以用于类或方法级别 |
@GetMapping | @RequestMapping(method = RequestMethod.GET) 的缩写 |
@PostMapping | @RequestMapping(method = RequestMethod.POST) 的缩写 |
@PutMapping | @RequestMapping(method = RequestMethod.PUT) 的缩写 |
@DeleteMapping | @RequestMapping(method = RequestMethod.DELETE) 的缩写 |
@PatchMapping | @RequestMapping(method = RequestMethod.PATCH) 的缩写 |
@RequestParam | 获取请求参数,用于 GET 或 POST 请求 |
@PathVariable | 获取路径参数,例如 /user/{id} |
@RequestBody | 接收 JSON 请求体,用于 POST 或 PUT 请求 |
@ResponseBody | 将返回值转换为 JSON,返回 JSON 格式数据 |
4. Spring Data JPA 相关注解
| 注解 | 说明 |
|---|---|
@Entity | 标识实体类,与数据库表映射 |
@Table | 指定表名,如果不指定,默认使用类名 |
@Id | 标识主键 |
@GeneratedValue | 自动生成主键,可指定策略 (AUTO, IDENTITY, SEQUENCE, TABLE) |
@Column | 指定数据库字段名,如果不指定,默认使用属性名 |
@OneToOne | 一对一 关联关系 |
@OneToMany | 一对多 关联关系 |
@ManyToOne | 多对一 关联关系 |
@ManyToMany | 多对多 关联关系 |
@Query | 自定义 SQL 查询 |
@Transactional | 事务管理(见下文) |
5. Spring 事务管理
| 注解 | 说明 |
|---|---|
@Transactional | 声明事务,可以加在类或方法上 |
@EnableTransactionManagement | 启用事务管理 |
6. Spring Security 相关注解
| 注解 | 说明 |
|---|---|
@EnableWebSecurity | 开启 Spring Security |
@EnableGlobalMethodSecurity | 启用方法级安全 |
@PreAuthorize | 方法级权限控制,如 @PreAuthorize("hasRole('ADMIN')") |
@Secured | 方法级安全控制,如 @Secured({"ROLE_ADMIN"}) |
@RolesAllowed | 方法级安全控制,等同于 @Secured |
7. Spring AOP 相关注解
| 注解 | 说明 |
|---|---|
@Aspect | 定义 AOP 切面 |
@Pointcut | 定义切点 |
@Before | 前置通知 |
@After | 后置通知 |
@AfterReturning | 返回通知 |
@AfterThrowing | 异常通知 |
@Around | 环绕通知 |
8. Spring 其他常用注解
| 注解 | 说明 |
|---|---|
@Value | 注入配置值 |
@PropertySource | 引入外部配置文件 |
@Autowired | 自动注入 Bean |
@Qualifier | 指定 Bean 名称 进行注入 |
@Primary | 设置多个 Bean 的优先级 |
@Scope | 指定 Bean 的作用域(singleton、prototype、request、session 等) |
@Lazy | 懒加载 Bean |
总结
| 分类 | 主要作用 |
|---|---|
| Spring 核心注解 | 定义 Bean、配置类、组件扫描等 |
| Spring Boot 相关注解 | Spring Boot 自动配置、启动类相关 |
| Spring MVC 相关注解 | 处理 HTTP 请求、参数、返回值 |
| Spring Data JPA 相关注解 | ORM 映射、数据查询 |
| Spring 事务管理 | 事务控制 |
| Spring Security 相关注解 | 权限控制、安全认证 |
| Spring AOP 相关注解 | 切面编程 |
| Spring 其他常用注解 | 配置管理、依赖注入 |
相关文章:
Spring Boot的常用注解
Spring Boot 常用注解 主要分为以下几类: Spring 核心注解Spring Boot 相关注解Spring MVC 相关注解Spring Data JPA 相关注解Spring 事务管理Spring Security 相关注解Spring AOP 相关注解Spring 其他常用注解 下面是详细分类和表格展示👇:…...
【R语言】plyr包和dplyr包
一、plyr包 plyr扩展包主要是实现数据处理中的“分割-应用-组合”(split-apply-combine)策略。此策略是指将一个问题分割成更容易操作的部分,再对每一部分进行独立的操作,最后将各部分的操作结果组合起来。 plyr扩展包中的主要函…...
《XSS跨站脚本攻击》
一、XSS简介 XSS全称(Cross Site Scripting)跨站脚本攻击,为了避免和CSS层叠样式表名称冲突,所以改为了XSS,是最常见的Web应用程序安全漏洞之一,位于OWASP top 10 2013/2017年度分别为第三名和第七名&…...
Golang:精通sync/atomic 包的Atomic 操作
在本指南中,我们将探索sync/atomic包的细节,展示如何编写更安全、更高效的并发代码。无论你是经验丰富的Gopher还是刚刚起步,你都会发现有价值的见解来提升Go编程技能。让我们一起开启原子运算的力量吧! 理解Go中的原子操作 在快…...
代码随想录_二叉树
二叉树 二叉树的递归遍历 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历 // 前序遍历递归LC144_二叉树的前序遍历 class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result new ArrayList<Integer&g…...
详解Swift中 Sendable AnyActor Actor GlobalActor MainActor Task、await、async
详解Swift中 Sendable AnyActor Actor GlobalActor MainActor 的关联或者关系 及其 各自的作用 和 用法 以及与 Task、await、async: Sendable 协议 作用: Sendable 是一个协议,它用于标记可以安全地跨线程或异步任务传递的数据类型。符合 S…...
【C语言标准库函数】浮点数分解与构造: frexp() 和 ldexp()
目录 一、头文件 二、函数简介 2.1. frexp(double x, int *exp) 2.2. ldexp(double x, int exp) 三、函数实现(概念性) 3.1. frexp 的概念性实现 3.2. ldexp 的概念性实现 四、注意事项 五、示例代码 在C语言标准库中,frexp() 和 ld…...
【Git】tortoisegit使用配置
1. 安装 首先下载小乌龟,下载地址:https://tortoisegit.org/download/, 可以顺便下载语言包! 安装时,默认安装就可以,一路next。也可以安装到指定目录中 目前已完成本地安装,接下来就需要与远程仓库建立连接&…...
Spring基于文心一言API使用的大模型
有时做项目我们可能会遇到要在项目中对接AI大模型 本篇文章是对使用文心一言大模型的使用总结 前置任务 在百度智能云开放平台中注册成为开发者 百度智能云开放平台 进入百度智能云官网进行登录,点击立即体验 点击千帆大模型平台 向下滑动,进入到模型…...
运维_Mac环境单体服务Docker部署实战手册
Docker部署 本小节,讲解如何将前端 后端项目,使用 Docker 容器,部署到 dev 开发环境下的一台 Mac 电脑上。 1 环境准备 需要安装如下环境: Docker:容器MySQL:数据库Redis:缓存Nginx&#x…...
[论文笔记] Deepseek-R1R1-zero技术报告阅读
启发: 1、SFT&RL的训练数据使用CoT输出的格式,先思考再回答,大大提升模型的数学与推理能力。 2、RL训练使用群体相对策略优化(GRPO),奖励模型是规则驱动,准确性奖励和格式化奖励。 1. 总体概述 背景与目标 报告聚焦于利用强化学习(RL)提升大型语言模型(LLMs)…...
Centos Ollama + Deepseek-r1+Chatbox运行环境搭建
Centos Ollama Deepseek-r1Chatbox运行环境搭建 内容介绍下载ollama在Ollama运行DeepSeek-r1模型使用chatbox连接ollama api 内容介绍 你好! 这篇文章简单讲述一下如何在linux环境搭建 Ollama Deepseek-r1。并在本地安装的Chatbox中进行远程调用 下载ollama 登…...
一文读懂:TCP网络拥塞的应对策略与方案
TCP(传输控制协议)是互联网中广泛使用的可靠传输协议,它通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制确保数据的可靠传输。然而,在网络环境中,由于多个主机共享网络资源,网络拥塞成为了一个…...
SpringSecurity:授权服务器与客户端应用(入门案例)
文章目录 一、需求概述二、开发授权服务器1、pom依赖2、yml配置3、启动服务端 三、开发客户端应用1、pom依赖2、yml配置3、SecurityConfig4、接口5、测试 一、需求概述 maven需要3.6.0以上版本 二、开发授权服务器 1、pom依赖 <dependency><groupId>org.springfr…...
Python与java的区别
一开始接触Python的时候,哔哩视频铺天盖地,看了很多人主讲的,要找适合自己口味的,各种培训机构喜欢在各种平台引流打广告,看了很多家,要么就是一个视频几个小时,长篇大论不讲原理只讲应用&#…...
doris:MySQL 兼容性
Doris 高度兼容 MySQL 语法,支持标准 SQL。但是 Doris 与 MySQL 还是有很多不同的地方,下面给出了它们的差异点介绍。 数据类型 数字类型 类型MySQLDorisBoolean- 支持 - 范围:0 代表 false,1 代表 true- 支持 - 关键字&am…...
SQL中 的exists用法
EXISTS 是 SQL 中的一个子查询条件,用于检查子查询是否返回任何行。如果子查询返回至少一行,则 EXISTS 返回 TRUE。 例如,查询有订单的客户列表: SELECT * FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.cust…...
案例1.spark和flink分别实现作业配置动态更新案例
目录 目录 一、背景 二、解决 1.方法1:spark broadcast广播变量 a. 思路 b. 案例 ① 需求 ② 数据 ③ 代码 2.方法2:flink RichSourceFunction a. 思路 b. 案例 ① 需求 ② 数据 ③ 代码 ④ 测试验证 测试1 测试2 测试3 一、背景 在实时作业(如 Spark Str…...
大数据学习之SparkSql
95.SPARKSQL_简介 网址: https://spark.apache.org/sql/ Spark SQL 是 Spark 的一个模块,用于处理 结构化的数据 。 SparkSQL 特点 1 易整合 无缝的整合了 SQL 查询和 Spark 编程,随时用 SQL 或 DataFrame API 处理结构化数据。并且支…...
鸿蒙UI(ArkUI-方舟UI框架)- 使用文本
返回主章节 → 鸿蒙UI(ArkUI-方舟UI框架) 文本使用 文本显示 (Text/Span) Text是文本组件,通常用于展示用户视图,如显示文章的文字内容。Span则用于呈现显示行内文本。 创建文本 string字符串 Text("我是一段文本"…...
Spider 数据集上实现nlp2sql训练任务
NLP2SQL(自然语言处理到 SQL 查询的转换)是一个重要的自然语言处理(NLP)任务,其目标是将用户的自然语言问题转换为相应的 SQL 查询。这一任务在许多场景下具有广泛的应用,尤其是在与数据库交互的场景中&…...
数据结构——【树模板】
#思路 1、 结点类: 属性:数据,孩子结点列表 功能1:认孩子: 前提:在父子都是结点的情况下 2. 树类: 属性:根节点,生成初始化的总结点 功能1:获取初始化…...
R 数组:高效数据处理的基础
R 数组:高效数据处理的基础 引言 在数据科学和统计分析领域,R 语言以其强大的数据处理和分析能力而备受推崇。R 数组是 R 语言中用于存储和操作数据的基本数据结构。本文将详细介绍 R 数组的创建、操作和优化,帮助读者掌握 R 数组的使用技巧…...
【DeepSeek】DeepSeek概述 | 本地部署deepseek
目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型,以其…...
npm link,lerna,pnmp workspace区别
npm link、Lerna 和 pnpm workspace 是三种不同的工具/功能,用于处理 JavaScript 项目的依赖管理和 Monorepo 场景。它们的核心区别如下: 1. npm link 用途 本地调试依赖:将本地开发的包(Package A)临时链接到另一个…...
ASP.NET Core 使用 WebClient 从 URL 下载
本文使用 ASP .NET Core 3.1,但它在.NET 5、 .NET 6和.NET 8上也同样适用。如果使用较旧的.NET Framework,请参阅本文,不过,变化不大。 如果想要从 URL 下载任何数据类型,请参阅本文:HttpClient 使用WebC…...
【CubeMX-HAL库】STM32F407—无刷电机学习笔记
目录 简介: 学习资料: 跳转目录: 一、工程创建 二、板载LED 三、用户按键 四、蜂鸣器 1.完整IO控制代码 五、TFT彩屏驱动 六、ADC多通道 1.通道确认 2.CubeMX配置 ①开启对应的ADC通道 ②选择规则组通道 ③开启DMA ④开启ADC…...
vue3 点击图标从相册选择二维码图片,并使用jsqr解析二维码(含crypto-js加密解密过程)
vue3 点击图标从相册选择二维码图片,并使用jsqr解析二维码(含crypto-js加密解密过程) 1.安装 jsqr 和 crypto-js npm install -d jsqr npm install crypto-js2.在util目录下新建encryptionHelper.js文件,写加密解密方法。 // e…...
kafka 3.5.0 raft协议安装
前言 最近做项目,需要使用kafka进行通信,且只能使用kafka,笔者没有测试集群,就自己搭建了kafka集群,实际上笔者在很早之前就搭建了,因为当时还是zookeeper(简称ZK)注册元数据&#…...
用Kibana实现Elasticsearch索引的增删改查:实战指南
在大数据时代,Elasticsearch(简称 ES)和 Kibana 作为强大的数据搜索与可视化工具,受到了众多开发者的青睐。Kibana 提供了一个直观的界面,可以方便地对 Elasticsearch 中的数据进行操作。本文将详细介绍如何使用 Kiban…...
