当前位置: 首页 > news >正文

springboot、spring、springmvc有哪些注解

Spring Boot 常用注解

虽然Spring Boot本身并没有引入大量新的注解,但它基于Spring框架,并整合了多种技术和库,使得开发者可以更方便地使用Spring框架的功能。在Spring Boot项目中,常用的注解主要来自于Spring框架本身。
‌@SpringBootApplication‌:标注一个主程序类,表明这是一个Spring Boot应用程序的入口。它是@Configuration、@EnableAutoConfiguration和@ComponentScan的组合注解‌。
‌@EnableAutoConfiguration‌:启用Spring Boot的自动配置机制,根据项目中的依赖和应用上下文自动配置Spring应用程序‌。
‌@ComponentScan‌:自动扫描指定包及其子包中的Spring组件‌。

Spring 常用注解

核心注解
@Component:一个通用的注解,任何Spring组件都可以使用,表示一个Spring管理的Bean。
@Service:表示业务逻辑组件,增强了代码的可读性,表明这个类是业务逻辑层的一部分。
@Repository:专门用于持久层,它不仅具有@Component的功能,还支持数据库异常的转换。
@Controller:专用于Spring MVC控制器,用于处理Web请求。
@Autowired:自动注入依赖,可以用于构造函数、字段或setter方法。
@Qualifier:当有多个Bean可以注入时,使用@Qualifier指定要注入的具体Bean。
@Value:用于注入配置文件中的属性值,常用于注入简单的属性,如字符串、数值。
@Configuration:标记为配置类,通常用于定义一个或多个@Bean。被标记的类通常替代XML配置文件。
@Bean:定义一个Bean的方法,该方法的返回值将被注册为Spring容器中的Bean。通常用于配置第三方库或复杂的实例化逻辑。
@Import:用于导入其他配置类或组件到Spring容器中。
@ImportSelector:返回需要导入的组件的全类名数组。
@ImportBeanDefinitionRegistrar:手动注册Bean到容器中。
@Primary:当存在多个同类型的Bean时,指定一个默认的Bean进行注入。
@Profile:指定组件在哪个环境的情况下才能被注册到容器中。
@Conditional:通过实现Condition接口,并重写matches方法,从而决定该Bean是否被实例化。
AOP(面向切面编程)相关注解
@Aspect:声明一个切面。
@After:在方法执行之后执行。
@Before:在方法执行之前执行。
@Around:在方法执行之前与之后执行。
@PointCut:声明切点。
Java配置类相关注解
@ComponentScan:用于对@Component进行扫描。
异步与定时任务相关注解
@EnableAsync:配置类中通过此注解开启对异步任务的支持。
@Async:在实际执行的Bean方法使用该注解来声明其是一个异步任务。
@EnableScheduling:在配置类上使用,开启计划任务的支持。
@Scheduled:来申明这是一个任务,包括cron、fixDelay、fixRate等类型。
测试相关注解
@RunWith:运行器,Spring中通常用于对JUnit的支持。
@ContextConfiguration:用来加载配置配置文件。
Spring事务注解
@Transactional:用于声明事务管理。

Spring MVC 常用注解

控制器相关注解
@Controller:用于标识一个控制器类。
@RestController:是@Controller和@ResponseBody的组合,用于创建RESTful Web Services。
请求映射注解
@RequestMapping:通用的映射注解,可以处理任何类型的HTTP请求。可与method属性搭配使用来限定请求类型。
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping:这些是@RequestMapping的特化版本,分别处理GET、POST、PUT、DELETE请求,使代码更加简洁和具备语义性。
请求参数处理注解
@PathVariable:用于从URL中提取路径参数,适用于RESTful URL结构。
@RequestParam:用于从查询参数中提取请求参数,通常用于表单提交或GET请求的查询字符串。
@RequestBody:将请求体内容绑定到方法参数,通常用于处理JSON或XML格式的请求体。
@ResponseBody:将方法的返回值作为响应体返回,通常用于返回JSON或XML数据。
@ModelAttribute:用于将请求参数与模型对象进行绑定。
@CookieValue:用于将Cookie与控制器方法的参数进行绑定。
@RequestHeader:用于将HTTP请求头与控制器方法的参数进行绑定。
@RequestAttribute:由请求方法、过滤器或拦截器创建或预先存在于request作用域中的属性,将该属性传到方法的参数上。
@SessionAttribute:由请求方法、过滤器或拦截器创建或预先存在于session作用域中的属性,将该属性传到方法的参数上。
@SessionAttributes:只能用于类上,无法用于方法上,用于有选择地指定Model中的那些属性转存到HttpSession对象当中。
@MatrixVariable:此注解扩展了URL请求地址的功能,可以接收多个变量,用“;”(分号)分隔,可以用于多条件查询。
跨域处理注解
@CrossOrigin:用于处理Spring MVC中的跨域请求问题。
全局异常处理与数据预处理注解
@ControllerAdvice:全局异常处理、全局数据绑定、全局数据预处理。
@ExceptionHandler:用于全局处理控制器里的异常。
@InitBinder:用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。
响应状态注解
@ResponseStatus:用于设置HTTP响应状态码。
REST控制器增强注解
@RestControllerAdvice:用于增强REST控制器的功能,提供全局的异常处理和数据绑定等。
这些注解极大地简化了Spring Boot、Spring和Spring MVC应用程序的开发过程,使开发者能够快速构建出功能强大且易于维护的应用程序。在实际开发中,选择合适的注解不仅能提高代码的可读性,还能确保代码的灵活性和可维护性。

相关文章:

springboot、spring、springmvc有哪些注解

Spring Boot 常用注解 虽然Spring Boot本身并没有引入大量新的注解,但它基于Spring框架,并整合了多种技术和库,使得开发者可以更方便地使用Spring框架的功能。在Spring Boot项目中,常用的注解主要来自于Spring框架本身。 ‌Sprin…...

Apache Commons ThreadUtils 的使用与优化

Apache Commons ThreadUtils 的使用与优化 1. 问题背景 在 Java 系统中,跨系统接口调用通常需要高并发支持,尤其是线程池的合理配置至关重要。如果线程池使用不当,可能导致性能下降,线程等待或过载。 当前问题 使用了 Apache …...

重温设计模式--5、职责链模式

文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它旨在将请求的发送者和多个接收者解耦,让多个对象都有机会处理请求&am…...

下午四点半

客户的员工竟然背着公司开发报表系统,是在密谋什么大事吗? 之前去线下给客户的员工培训,当时我就对这个小姑娘印象很深刻,因为她后面加了我们的技术人员,问了很多问题,不同于从来没有用过低代码平台的人&a…...

嵌入式单片机中Flash存储器控制与实现

第一:嵌入式单片机内部Flash概述 1.存储器的概念 存储器指的是若干个存储单元的集合,每个存储单元都可以存储若干个二进制数,为了方便的操作存储单元,就为每个存储单元都分配了地址,就可以通过寻址来访问存储单元。由于计算机的处理的数据量较大,并且运算速度都很快,就…...

loki failed to flush

loki 报错 levelerror ts2024-12-27T08:13:10.450140686Z callerflush.go:143 org_idfake msg"failed to flush" err"failed to flush chunks: store put chunk: open /data/loki/chunks/ZmFrZS85ODBmM2U3NzliODg2MjY1OjE5M2VhNDVkYTc4OjE5M2VhNDVlNDdkOjVmMjA…...

微信小程序打印生产环境日志

微信小程序打印生产环境日志 新建一个log.js文件,写入以下代码: let log wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : nullmodule.exports {debug() {if (!log) returnlog.debug.apply(log, arguments)},info() {if (!log) returnlog.i…...

利用 deepin-IDE 的 AI 能力,我实现了文件加密扩展

经过多轮迭代,deepin 文件管理器(dde-file-manager)的扩展功能已经趋于稳定,看到越来越丰富的文管新功能,作为一名技术爱好者,也想自己动手写个插件扩展一下文管的功能。 我选择的开发工具是 deepin-IDE&a…...

JPA 基本查询(五)

JPA 查询Exists示例 JPA教程 - JPA 查询Exists示例 如果子查询返回任何行,则EXISTS条件返回true。 以下代码显示如何在JPQL中使用带有子查询的EXISTS运算符。 List l em.createQuery("SELECT e FROM Professor e WHERE EXISTS " "(SELECT p FROM …...

hiprint结合vue2项目实现静默打印详细使用步骤

代码地址是:vue-plugin-hiprint: hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 本地安装包地址:electron-hiprint 发行版 - Gitee.com 1、先安装hipint安装包在本地 2、项目运行npm(socket.…...

项目报 OutOfMemoryError 、GC overhead limit exceeded 问题排查以及解决思路实战

项目报 OutOfMemoryError、GC overhead limit exceeded 问题排查以及解决思路实战 前言: 问题现象描述: 1,生产环境有个定时任务,没有初始化告警数据【告警数据量为1000多个】 2,其他定时任务执行正常 3,查…...

【计算机-显示屏灰阶测试】

硬计算机-显示屏灰阶测试 ■ 对比度■ 清晰度■ 灰度色阶(色带)■ 对比率■■ ■ 对比度 在一个性能良好的显示器上,您可观察到每种颜色的标尺都可分为从 1 至 32、大致上等宽但不同亮度的色带。即使是在刻度1处的色带也应该隐约可见。 一个…...

CSS系列(40)-- Container Queries详解

前端技术探索系列:CSS Container Queries详解 📦 致读者:探索组件响应式的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Container Queries,这个强大的组件级响应式特性。 基础概念 🚀 容…...

工作生活做事慢效率低原因及解决方案

时间和效率管理具体版(初阶)(一) 工作&生活做事慢效率低原因及解决方案 一、效率慢的原因(动物解析法(编者自创)) 打败你的可能是生活的小事 1.无头苍蝇无流程 做事之前没有想…...

各种数据库类型介绍

在软件开发和数据处理领域,数据库扮演着至关重要的角色。它们用于存储、检索和管理大量数据,是信息系统不可或缺的基础。以下是几种常用的数据库类型及其简要介绍: 1.关系型数据库(Relational Databases) 关系型数据库…...

了解智能运维

智能运维 (一)运维工作的转变 随着技术发展,运维工作从基础的搬机器、插网线、装系统等体力活儿,逐渐转变为更侧重服务器管理、代码管理、日志分析、监控告警、流量管理及故障排查等的脑力劳动。如今,运维人员拿到的…...

js实现仿windows文件名称排序

引言: 在JavaScript中,数组排序是一个常见的操作,但默认的Array.sort()方法只能进行简单的字符串比较。在处理复杂数据时,我们需要自定义排序函数来满足特定的需求。本文将通过一个具体的代码示例,解释如何实现一个仿w…...

基于Oauth2的SSO单点登录---前端

Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架,提供了丰富的组件和功能,可以帮助开发者快速搭建现代化的后台管理系统。 一、基本知识 (一)Vue-element-admin 的主要文件和目录 vue-element-admin/ |--…...

springboot 使用注解设置缓存时效

springboot 使用注解设置缓存时效 import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.cache.RedisCache; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCach…...

QGIS二次开发(地图符号库操作)

实习三 地图符号库操作 3.1 任务要求 基于QGIS,实现地图符号的设计/存储与显示;基于QGIS实现一个点、线、面shp矢量图层文件的显示。通过设置引用的符号,改变矢量图层的显示效果;可编辑地图的符号库汇中的点符号、线符号、面符号…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

[特殊字符] 手撸 Redis 互斥锁那些坑

📖 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作,想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁,也顺便跟 Redisson 的 RLock 机制对比了下,记录一波,别踩我踩过…...