Spring Boot 常用注解分类

目录

  • 1.核心注解:
  • 2.配置相关注解:
  • 3.控制器相关注解:
  • 4.数据访问相关注解:
  • 5.测试相关注解:
  • 6.条件注解:
  • 7.AOP相关注解:
  • 8.定时任务相关注解:
  • 9.消息队列相关注解:
  • 10.Spring Security相关注解:
  • 11.Swagger注解(用于API文档生成):
  • 12.Spring缓存相关注解:
  • 13.Spring定时任务相关注解:
  • 14.Spring Cloud相关注解(用于微服务开发):

1.核心注解:

@SpringBootApplication:一个复合注解,用于标识Spring Boot应用程序的入口点。它组合了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,提供了自动配置和组件扫描的功能。
@Configuration:将类标识为配置类,类似于传统的XML配置文件,用于定义Bean的创建和配置。
@EnableAutoConfiguration:启用Spring Boot的自动配置机制,根据类路径和其他条件自动配置Spring应用程序。
@ComponentScan:扫描指定包及其子包下的组件(包括@Service、@Repository、@Component和@Controller等)。

2.配置相关注解:

@Value:用于将外部属性值注入到Spring Bean中。
@ConfigurationProperties:绑定外部配置文件中的属性到Java Bean。
@PropertySource:指定外部属性文件的位置。
@Conditional:根据条件动态添加或排除Bean的装配。

3.控制器相关注解:

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。
@RequestMapping:将HTTP请求映射到处理方法上。
@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。
@RequestParam:用于获取请求参数的值。
@PathVariable:用于获取URL路径变量的值。
@RequestBody:将请求体转换为Java对象。
@ResponseBody:将方法返回的对象转换为HTTP响应体。

4.数据访问相关注解:

@Entity:标识一个类作为实体类,在数据库中映射为表。
@Repository:标识一个类作为数据访问对象(DAO)。
@Autowired:自动装配依赖的Bean。
@Transactional:标识一个方法需要在事务中执行。
@Query:定义自定义的查询方法。

5.测试相关注解:

@RunWith:指定测试运行器。
@SpringBootTest:用于加载Spring应用程序的上下文,并提供测试支持。
@MockBean:模拟Bean,用于替代真实的Bean进行测试。
这些注解涵盖了Spring Boot应用程序开发的核心方面,通过合理使用这些注解,可以快速搭建和配置Spring Boot应用程序,并实现各种功能。

6.条件注解:

@ConditionalOnClass:当类路径中存在指定的类时才生效。
@ConditionalOnBean:当容器中存在指定的Bean时才生效。
@ConditionalOnProperty:当配置文件中指定的属性满足条件时才生效。
@ConditionalOnMissingBean:当容器中不存在指定的Bean时才生效。

7.AOP相关注解:

@Aspect:将一个类标识为切面。
@Pointcut:定义切点,即需要被拦截的方法。
@Before:在方法执行之前进行拦截。
@After:在方法执行之后进行拦截。
@Around:在方法执行前后进行拦截。

8.定时任务相关注解:

@Scheduled:定义定时任务的执行规则。
异步编程相关注解:

@Async:将方法标记为异步执行。
缓存相关注解:

@EnableCaching:启用缓存功能。
@Cacheable:标记方法的结果可被缓存。
这些注解可以根据具体的需求和场景选择使用,用于实现更多的功能和扩展。需要注意的是,在使用注解时要理解其作用和正确使用方式,以避免错误和不必要的麻烦。

9.消息队列相关注解:

@EnableJms:启用JMS消息队列功能。
@JmsListener:标识一个方法作为JMS消息监听器。
WebFlux相关注解(用于响应式编程):

@RestController:组合注解,用于标识控制器类,并将其方法的返回值直接作为HTTP响应体返回。
@RequestMapping:将HTTP请求映射到处理方法上。
@GetMapping、@PostMapping等:用于简化常见的HTTP请求方法的映射。
@PathVariable:用于获取URL路径变量的值。
@RequestBody:将请求体转换为Java对象。
@ResponseBody:将方法返回的对象转换为HTTP响应体。

10.Spring Security相关注解:

@EnableWebSecurity:启用Web安全性配置。
@Secured:限制方法的访问权限。
@PreAuthorize:在方法执行之前进行权限检查。
@PostAuthorize:在方法执行之后进行权限检查。

11.Swagger注解(用于API文档生成):

@Api:用于标识Controller类,生成对应API文档。
@ApiOperation:用于标识Controller类中的方法,生成对应API操作的文档。
@ApiParam:用于标识Controller方法中的参数,生成对应API参数的文档。

12.Spring缓存相关注解:

@EnableCaching:启用Spring缓存功能。
@Cacheable:标识方法的结果应该被缓存。
@CachePut:标识方法的结果应该被放入缓存。
@CacheEvict:标识方法执行后应该移除缓存中的数据。

13.Spring定时任务相关注解:

@EnableScheduling:启用Spring定时任务功能。
@Scheduled:标识方法为定时任务,并设置触发时间规则。
Spring国际化相关注解:

@EnableMessageSource:启用国际化消息资源配置。
@ConfigurationProperties:用于将属性绑定到配置类中。
Spring WebSocket相关注解:

@EnableWebSocket:启用Spring WebSocket功能。
@Controller:标识类为WebSocket控制器。
@MessageMapping:标记方法用于处理特定消息类型。

14.Spring Cloud相关注解(用于微服务开发):

@EnableDiscoveryClient:启用服务注册和发现功能。
@EnableFeignClients:启用Feign客户端功能。
@EnableCircuitBreaker:启用熔断器功能。
@EnableConfigServer:启用配置中心功能。
这些注解涵盖了不同领域的功能和特性,可以根据具体的需求选择和使用。
Spring框架提供了丰富的注解,可以更高效地进行开发、配置和集成各种功能

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

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

相关文章

函数式编程解析:定义、功能与Java实践

目录 一、函数式编程1.1 什么是函数式编程1.2 函数式编程特征1.2.1 纯函数1.2.2 函数是一等公民 1.3 函数式编程在java中的实践 参考资料 一、函数式编程 1.1 什么是函数式编程 函数式编程(Functional Programming)是一种编程范式,它将计算…

ES6中的迭代器和set、map集合

什么是迭代器? 一种机制,也是一种接口,为数据结构提供统一访问接口,依次处理数据据结构成员 只要实现了迭代器接口,就可以使用for...of循环遍历。 /*** 迭代器是一种机制 是一种接口 只要数据解构实现了接口 就可…

力扣labuladong一刷day36天

力扣labuladong一刷day36天 一、96. 不同的二叉搜索树 题目链接:https://leetcode.cn/problems/unique-binary-search-trees/ 思路:这是一道典型的动态规划题,从n3来看 子树有几种形态 (0, 2)、(1, 1)、(2, 0)有规律可循,即为左…

飞天使-linux操作的一些技巧与知识点4

文章目录 ansible配置文件的优先级尝试开始进行操作ansible常用模块ansible 的playbook示例安装phpplaybook中变量的引用 ansible yum install -y ansible 测试是否可用 ansible localhost -m ping /etc/ansible/ansible.cfg :主配置文件,配置 ansible…

大公司求我用Kotlin写个通用爬虫模板

bug虐我千百遍,我待他如初恋。每次深夜挑灯都是我与bug较量的时间。今天我要说的就是写一个爬虫模版,自动抓取百度图片的教程,这次使用Kotlin编写的爬虫程序在Scrapy框架下完成的,如有不足欢迎指正。 首先,使用Kotlin编…

Mybatis-Plus源码解析之@MapperScan(一)

group : com.baomidou version:3.5.2.2-SNAPSHOT baomidou官网可以从快速开始了解到,除了配置数据源,最重要的就是MapperScan 注解,在 Spring Boot 启动类中添加 MapperScan 注解,扫描 Mapper 文件夹。 MapperScan 按照惯例&…

angular form 组件、双向绑定;反应式表单

1.使用双向绑定,以及angular的表单提交功能 app.moudle中引入 双向绑定 [(ngModel)]"text" ​​​​​​​ 效果 提交表单 2.反应式表单 在app.module.ts中引入在组件中引入,并放在一个变量里 在初始化时实列化这个module 定义规则 在html…

Linux:环境变量

目录 1.基本变量 2.通过代码获取环境变量 2.1 main传参 2.2 全局变量environ 2.3 系统调用getenv() 3.在脚本文件中添加环境变量 4.环境变量通常是具有全局属性 1.基本变量 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数…

商用中央空调市场分析:预计2028年将达到628亿元

商用空调一直以来都没有一个相对比较明确的概念,一直以来被认为是制冷空调市场的一个细分子行业。现在比较一致的观点是,可以纳入商用空调范畴的产品可以包括户式中央空调产品、部分传统中央空调产品以及部分家用空调。商用空调已普遍采用直流变频领先技…

网络计算机模拟实现

今天给大家说说前几天完成的一个模拟的网络计算机吧,虽然计算机的模拟实现的原理很简单,但是如果要想写乘网络的,个人认为是不简单的。基本上算是包涵了套接字编程的三分之一的知识点,此处的套接字编程指的是在理解TCP/IP五层协议…

泡沫玻璃市场分析:预计2028年将达到14亿美元

泡沫玻璃最早是由美国匹兹堡康宁公司发明的,是由碎玻璃、发泡剂、改性添加剂和发泡促进剂等,经过细粉碎和均匀混合后,再经过高温熔化,发泡、退火而制成的无机非金属玻璃材料。它是由大量直径为1~2毫米的均匀气泡结构组成。其中吸声…

Linux 常用命令----mktemp 命令

文章目录 基本用法实例演示高级用法注意事项 mktemp 命令用于创建一个临时文件或目录,这在需要处理临时数据或进行安全性测试时非常有用。使用 mktemp 可以保证文件名的唯一性,避免因文件名冲突而导致的问题。 基本用法 创建临时文件: 命令 mktemp 默认…

Go语言基础知识学习(一)

Go基本数据类型 bool bool型值可以为true或者false,例子: var b bool true数值型 类型表示范围int8有符号8位整型-128 ~ 127int16有符号16位整型-32768 ~ 32767int32有符号32位整型-2147783648 ~ 2147483647int64有符号64位整型uint8无符号8位整型0 ~ 255uint16…

优思学院|如何建立公司运营指标体系?如何推行六西格玛改进运营指标?

关键绩效指标 (KPI) 是测量您团队或组织朝重要商业目标进展表现如何的量化指标,组织会在多个层面使用 KPI,这视乎您想要追踪何指标而定,您可以设定全组织的、特定团队的、或甚至是个人 KPI。 良好的KPI能让公司管理者掌握组织的营运是否进度…

使用React 18、Echarts和MUI实现温度计

关键词 React 18 Echarts和MUI 前言 在本文中,我们将结合使用React 18、Echarts和MUI(Material-UI)库,展示如何实现一个交互性的温度计。我们将使用Echarts绘制温度计的外观,并使用MUI创建一个漂亮的用户界面。 本文…

点评项目——分布式锁

2023.12.10 集群模式下的并发安全问题及解决 随着现在分布式系统越来越普及,一个应用往往会部署在多台机器上(多节点),通过加锁可以解决在单机情况下的一人一单安全问题,但是在集群模式下就不行了。见下图&#xff1a…

在 Android WebView 中实现和 JavaScript 的互操作

前言 在 APP 中内嵌一个 H5 来实现特定的业务功能已经是非常成熟且常用的方案了。 虽然 H5 已经能够实现大多数的需求,但是对于某些需求还是得依靠原生代码来实现然后与 JavaScript 进行交互,例如我目前所负责的项目就是一个 “智能硬件” 设备&#x…

【PyTorch】卷积神经网络

文章目录 1. 理论介绍1.1. 从全连接层到卷积层1.1.1. 背景1.1.2. 从全连接层推导出卷积层 1.2. 卷积层1.2.1. 图像卷积1.2.2. 填充和步幅1.2.3. 多通道 1.3. 池化层(又称汇聚层)1.3.1. 背景1.3.2. 池化运算1.3.3. 填充和步幅1.3.4. 多通道 1.4. 卷积神经…

实现React18加TS,解决通用后台管理系统,实战方案落地有效实践经验

随着前端技术的不断发展和更新,使用React 18结合TypeScript(TS)来构建通用后台管理系统已成为一种常见的选择。本文将介绍如何在项目中应用React 18和TS,并分享一些实战方案的有效实践经验。 一、搭建React 18 TS项目 首先&…

12.2每日一题(1无穷型幂指函数:二倍角公式+三部曲+等价无穷小代换(只有整体的因子不为0才能先算出来))

注意:求极限不能想先算哪里就先算哪里,只有整体的因子不为0才能先算出来,部分不为0不可以先算