Spring常用注解(超全面)

官网:核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务,可以方便您快速阅读中文版官方文档。
https://springdoc.cn/spring/core.html#beans-standard-annotations
1,包扫描+组件标注注解
@Component:泛指各种组件
@Controller、@Service、@Repository都可以称为@Component。
@Controller:控制层
@Service:业务层
@Repository:数据访问层
2,@Bean
3,@Import
@Import(要导入到容器中的组件)
@ImportSelector:返回需要导入的组件的全类名数组
@ImportBeanDefinitionRegistrar:手动注册bean到容器中
4,注入bean的注解
@Autowired:由bean提供
@Autowired可以作用在变量、setter方法、构造函数上; 有个属性为required,可以配置为false; @Inject:由JSR-330提供
@Inject用法和@Autowired一样。
@Resource:由JSR-250提供 @Autowired、@Inject是默认按照类型匹配的,@Resource是按照名称匹配的,@Autowired如果需要按照名称匹配需要和@Qualifier一起使用,@Inject和@Name一起使用。
@Primary
5,Java配置类相关注解
@Configuration 声明当前类为配置类;
@Bean注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式; @ComponentScan用于对Component进行扫描;
6,切面(AOP)相关注解 Spring支持AspectJ的注解式切面编程。
@Aspect 声明一个切面
@After 在方法执行之后执行(方法上)
@Before 在方法执行之前执行(方法上)
@Around 在方法执行之前与之后执行(方法上)
@PointCut 声明切点
7,@Value注解
(1)支持如下方式的注入: 注入普通字符,注入操作系统属性,注入表达式结果,注入其它bean属性,注入文件资源,注入网站资源,注入配置文件
(2)@Value三种情况的用法。 ${}是去找外部配置的参数,将值赋过来 #{}是SpEL表达式,去寻找对应变量的内容 #{}直接写字符串就是将字符串的值注入进去
8,环境切换
@Profile 指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件。
@Conditional 通过实现Condition接口,并重写matches方法,从而决定该bean是否被实例化。
9,异步相关
@EnableAsync 配置类中通过此注解开启对异步任务的支持;
@Async在实际执行的bean方法使用该注解来声明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)
10、定时任务相关
@EnableScheduling 在配置类上使用,开启计划任务的支持(类上)
@Scheduled 来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)
11,Enable***注解 这些注解主要是用来开启对xxx的支持:
@EnableAspectAutoProxy:开启对AspectJ自动代理的支持;
@EnableAsync:开启异步方法的支持;
@EnableScheduling:开启计划任务的支持;
@EnableWebMvc:开启web MVC的配置支持;
@EnableConfigurationProperties:开启对@ConfigurationProperties注解配置Bean的支持; @EnableJpaRepositories:开启对SpringData JPA Repository的支持; @EnableTransactionManagement:开启注解式事务的支持; @EnableCaching:开启注解式的缓存支持;
12,测试相关注解 @RunWith 运行器,Spring中通常用于对JUnit的支持
@ContextConfiguration用来加载配置配置文件,其中classes属性用来加载配置类。
13,SpringMVC常用注解
@EnableWebMvc在配置类中开启Web MVC的配置支持。
@Controller
@RequestMapping用于映射web请求,包括访问路径和参数。
@ResponseBody 支持将返回值放到response内,而不是一个页面,通常用户返回json数据。 @RequestBody允许request的参数在request体中,而不是在直接连接的地址后面。(放在参数前)
@PathVariable 用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值,通常作为Restful的接口实现方法。
@RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。
@ControllerAdvice 全局异常处理,全局数据绑定,全局数据预处理
@ExceptionHandler 用于全局处理控制器里的异常。
@InitBinder 用来设置WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。 @ModelAttribute
14,Spring事务注解
@Transactional
相关文章:
Spring常用注解(超全面)
官网:核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务,可以方便您快速阅读中文版官方文档。https://springdoc.cn/spring/core.html#beans-standard-annotations 1,包扫描组件标注注解 Component:泛指各种组件 Controller、…...
HQL面试题练习 —— 合并活动日期
目录 1 题目2 建表语句3 题解 1 题目 已知有表记录了每个大厅的活动开始日期和结束日期,每个大厅可以有多个活动。请编写一个SQL查询合并在同一个大厅举行的所有重叠的活动,如果两个活动至少有一天相同,那他们就是重叠的,请将他们…...
基于SVm和随机森林算法模型的中国黄金价格预测分析与研究
摘要 本研究基于回归模型,运用支持向量机(SVM)、决策树和随机森林算法,对中国黄金价格进行预测分析。通过历史黄金价格数据的分析和特征工程,建立了相应的预测模型,并利用SVM、决策树和随机森林算法进行训…...
Host头攻击-使用反向代理服务器或负载均衡器来传递路由信息
反向代理服务器的作用 安全性:反向代理服务器位于Web服务器之前,可以隐藏实际Web服务器的身份和地址,从而增加安全性。它还可以对客户端请求进行过滤和检查,以防止潜在的攻击。负载均衡:反向代理服务器可以将客户端请…...
AWS容器之Amazon ECS
Amazon Elastic Container Service(Amazon ECS)是亚马逊提供的一种完全托管的容器编排服务,用于在云中运行、扩展和管理Docker容器化的应用程序。可以理解为Docker在云中对应的服务就是ECS。...
win10/win11 优先调用大核的电源计划性能设置
前言 大小核,即Intel 12代开始的P-core(性能核,一般叫大核)和E-core(能效核,一般叫小核)异核架构。说下个人理解,就是英特尔为了增加cpu性能,但是又因为架构和功耗的限制…...
模型实战(20)之 yolov8分类模型训练自己的数据集
yolov8分类模型训练自己的数据集 yolov8,一个实时快速的端到端的集检测、分割、分类、姿态识别于一体的视觉算法库/框架本文将给出yolov8 分类模型的数据集制作格式及训练流程 1. 环境搭建 关于虚拟环境的搭建真的是老生常谈了,给出一个简单的搭建流程吧#新建虚拟环境 conda …...
好消息!PMP纸质证书可以领取啦!(22年11月至23年8月)
上周五,中国国际人才交流基金会官方发布了《关于2022年11月和2023年3月、5月、8月PMI认证考试证书领取》的通知,具体内容如下: 之前顺利通过PMP/ACP/PgMP考试的同学抓紧时间,在5月24日—6月10日内进入官网上登记领取证书。 PMP考…...
select函数(Unix系统)
select函数(Unix系统) 一、函数格式二、参数及返回值2.1 struct fd_set 结构体2.1 struct timeval 结构体2.3 函数参数2.4 返回值 三、用法举例3.1 监控终端输入内容 一、函数格式 #include <sys/time.h>#include <sys/types.h>#include <…...
设计模式16——策略模式
写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 策略模式(Strategy…...
Putty: 随心御剑——远程启动服务工具plink
一、引言:如何远程控制 也许你会有这样的场景,交互程序(以下简称UI程序)跑在windows端,而控制程序跑在Linux上。我们想要通过windows端 UI程序来启动Linux下面的服务,来一场酣畅淋漓的御剑飞行咋办,难道要自己十年磨一剑,在Linux下编写一个受控服务程序么.计算机科技发…...
Vectorworks 2024 Mac安装包下载Vectorworks 2024安装教程3D建模设计工具
安装 步骤 1,双击下载好的安装包,打开。 2,将G1DXHL.ldf拖到桌面上备用。 3,返回打开的镜像 选择install vectorworks2024 双击打开启动安装程序。电脑就90hi高腰腿疼痛和Y&Aaa9yY 4,输入电脑密码。 5࿰…...
CSRF 攻击详解
什么是csrf攻击? CSRF攻击(Cross-Site Request Forgery,跨站请求伪造)是一种常见的网络攻击方式,它利用网站对用户浏览器的信任,诱使用户在不知情的情况下发送恶意请求。这类攻击通常发生在用户已经通过身…...
单链表OJ题(课堂总结)
1.链表的带环问题 上图就是一个典型的带环链表 1.1如何判读链表是否带环? 最常见的方法就是利用快慢指针,快指针追加慢指针,当二者相等的时候即可判断链表带环 其实现的代码如下: bool hasCycle(struct ListNode*head) { s…...
cad角度如何精确到0.1
可以通过更改角度精度的方式把角度的标注精确到小数点后几位,具体方法如下: 1、打开一个CAD文档,在文档中画一个角,如下图: 文章源自设计学徒自学网-https://www.sx1c.com/47920.html 2、给此角进行角度的标注&#…...
STM32H743+USBHID+CubeMX配置
一、环境准备 电脑系统:Windows 10 专业版 20H2 IDE:Keil v5.35、STM32CubeMX v6.5.0 测试硬件:正点原子阿波罗STM32H743 二、测试步骤 1、使用用例工程 配置STM32H743定时器功能-CSDN博客https://blog.csdn.net/horse_2007s/article/d…...
路由传参和获取参数的三种方式
路由传参和获取参数在前端开发中是一个常见的需求,特别是在使用如 Vue.js、React 等前端框架时。下面,我将以 Vue.js 为例,介绍三种常见的路由传参和获取参数的方式: 1. 使用 params 传参 传参: 在路由配置中&#…...
代码随想录算法训练营第四十一天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
代码随想录算法训练营第四十一天 509. 斐波那契数 题目链接:509. 斐波那契数 动规五部曲: 确定dp数组以及下标的含义:第i个数的斐波那契数值是dp[i]确定递推公式:dp[i] dp[i - 1] dp[i - 2];dp数组如何初始化:dp[…...
HTML5表单控件:新时代的交互魔法手册
🚀HTML5表单控件:新时代的交互魔法手册 🎯HTML5表单控件速览:新面孔,新功能1. 日期时间选择器(Date & Time Picker)2. 数字输入框(Number Input)3. 搜索框࿰…...
WordPress安装插件失败No working transports found
1. 背景(Situation) WordPress 社区有非常多的主题和插件,大部分人用 WordPress 都是为了这些免费好用的主题和插件。但是今天安装完 WordPress 后安装插件时出现了错误提示:“ 安装失败:下载失败。 No working trans…...
GPT-4稀疏激活真相:2%参数如何实现高效推理
1. 项目概述:参数规模与稀疏激活的真相拆解 “GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏,常被当作“大模型已突破算力瓶颈”的标志性论断。但作为从2017年就开始部署LSTM语音识别系统、…...
别再被‘一亿像素’忽悠了!聊聊手机CMOS尺寸、像素和Remosaic那些事儿
手机CMOS尺寸、像素与成像质量的真相:别再被数字游戏迷惑 每次打开手机厂商的发布会,总能看到各种令人眼花缭乱的参数轰炸——"一亿像素"、"超大底传感器"、"超清画质"。这些营销术语让普通消费者一头雾水,甚至…...
GD32/STM32串口高效收数秘籍:巧用IDLE中断判断一帧数据收完
GD32/STM32串口高效收数实战:IDLE中断DMA的黄金组合 在嵌入式开发中,串口通信就像设备间的"普通话",但如何高效接收不定长数据帧却让不少工程师头疼。想象一下无人机飞控与地面站的通信场景:数据包可能短至几个字节的指…...
飞凌OKMX6ULL-C开发板深度评测:从硬件解析到系统性能实战
1. 开箱与初识:飞凌OKMX6ULL-C开发平台拿到飞凌OKMX6ULL-C开发板的第一印象,是它比我想象中要“工整”不少。核心板(FETMX6ULL-C)和底板通过高可靠性的板对板连接器接插,这种设计在工业级产品中很常见,方便…...
【独家实测】ChatGPT-4 Turbo vs GPT-3.5 Turbo单位token成本对比:附Python自动核算脚本(限免24h)
更多请点击: https://codechina.net 第一章:ChatGPT API价格计算的底层逻辑与成本认知 ChatGPT API 的计费并非基于会话时长或请求次数,而是严格依据模型实际处理的 token 数量——包括输入(prompt)和输出(…...
机器学习评价指标之综合指标的关系
综合指标的关系宏平均考虑每个类别的个别表现,并对它们的评价指标(比如准确率、召回率等)进行平均。每个类别 被视为同等重要,无论类别的大小或样本数量。微平均则关注整体表现,它将所有类别的预测结果合并起来&#x…...
用随机森林实现手写英文字母识别(Python实战)
1. 项目概述:用随机森林搞定手写信件识别,这事儿比你想象中更接地气 “How To Perform Letter Recognition in Python Using Random Forest Classifier”——这个标题乍看像教科书里的章节名,但实际拆开来看,它直指一个非常具体、…...
机器学习生产化:从Notebook到可运维ML服务的实战路径
1. 项目概述:当模型走出笔记本,真正开始“呼吸”现实空气 你有没有经历过这样的时刻:Jupyter Notebook里所有指标都闪闪发亮,AUC 0.92,F1 0.87,交叉验证稳如泰山;业务方点头签字,上线…...
超全 PS 快捷键汇总!新手一键收藏终身受用
对于经常使用Photoshop修图、做设计的小伙伴来说,最影响效率的从来不是创意不足,而是频繁点击菜单栏找功能。明明几秒就能完成的操作,却因为不熟悉工具,反复查找按钮、低效操作,大大拖慢修图节奏。熟练掌握PS快捷键&am…...
API网关设计与实现完全指南
API网关设计与实现完全指南 前言 API网关是微服务架构中的统一入口,负责请求路由、负载均衡、安全认证、限流熔断等功能。一个设计良好的API网关可以极大地简化微服务架构的复杂度,提升系统的可维护性和安全性。本文将详细介绍API网关的设计理念、核心功…...
