柴沟堡做网站/免费b站软件推广网站
一、前言
首先这里说的SpringBoot常用注解是指在我们开发项目过程中,我们经常使用的注解,包含Spring、SpringBoot、SpringCloud、SpringMVC等这些框架中的注解,而不仅仅是SpringBoot中的注解。
这里只是作一个注解列举,每个注解具体如何使用可以自行搜索查询哈。
二、配置启动相关注解
2.1 @SpringBootApplication
等价于@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解之和。
2.2 @Configuration
SpringBoot 提供基于Java的配置,相当于之前写的 xml中配置的Bean。
2.3 @EnableAutoConfiguration
类级别的注解,开启自动配置,这个注解告诉SpringBoot 根据添加的Jar 依赖猜测你想如何配置Spring。
2.4 @ComponentScan
标注哪些路径下的类需要被Spring扫描。
2.5 @Conditional
这个是一个综合的注解,包含了很多子注解。
@ConditionalOnBean:标注配置了某个特定的Bean
@ConditionalOnMissingBean:标注没有配置特定的Bean
@ConditionalOnClass:标注Classpath里有指定的类
@ConditionalOnMissingClass:标注Classpath里没有指定的类
@ConditionalOnExpression:标注给定的SpELl表达式计算结果为true
@ConditionalOnJava:标注Java的版本匹配特定值或者一个范围值
@ConditionalOnJndi:标注参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDI InitialContext
@ConditionalOnOnProperty:标注指定的配置属性要有一个明确的值
@ConditionalOnResource:标注Classpath里没有指定的资源
@ConditionalOnWebApplication:标注这是一个Web应用程序
@ConditionalOnNotWebApplication:标注这不是一个Web应用程序
三、Bean处理相关注解
3.1 依赖注入
@Autowired(属于Spring中的注解)
用法:用在属性和方法上。含义:byType方式完成自动装配,把配置好的Bean拿来用,完成属性、方法的组装。当加上(required=false)时就算找不到bean也不会报错。
@Resource(属于J2EE的注解)
用法:用在属性上。含义:byName方式完成自动装配,把配置好的Bean拿来用,完成属性的组装。有两个重要属性,分别是name和type。
3.2 标注类被Spring容器管理
@Component
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共方法即可用上这个注解。
@Respository
用于数据持久层,经常标记到DAO类上。
@Service
用于服务层,经常标注到Service类上,学需要注解DAO层。
@Controller
用于控制层,MVC的控制层Bean,常注入Service层。
@RestController
与@Controller注解相似,标注这是一个控制层。标注这个注解的类的控制器中会将所有处理器方法的返回值都要直接写入响应体中,而不是将值放到模型中并传递给一个视图以便于渲染。
替代写法:@RestController等同于@Controller+@Response。
@Configuration
一般用来声明配置类。
@Scope
声明Spring Bean的作用域:singleton、prototype、request、session。
四、HTTP请示相关注解
四种常见的HTTP请求类型如下:
4.1 @GetMapping
GET请求,从服务器获取指定的资源。
4.2 @PostMapping
POST请求,在服务器上创建一个新的资源。
4.3 @PutMapping
PUT请求,更新服务器上的资源。
4.4 @DeleteMapping
DELETE请求,从服务器上删除指定的资源。
这里先列出以上四个,其他的可以自行搜索哦。
五、前后端参数传递相关注解
5.1 @RequestParam
用在方法的参数前面,获取请求中表单类型的key=value格式的数据。
5.2 @PathVariable
路径变量,参数与大括号里的名字要一样。
5.3 @RequestBody
获取请求body中的数据,常用于搭配@PostMapping请求来提交的对象数据。
5.4 @ResponseBody
表示该方法的返回结果直接写入到了HTTP response body中了,格式为 json。
六、读取配置相关注解
6.1 @Value
直接读取各种配置源的属性值。
6.2 @ConfigurationProperties
读取配置信息并与bean绑定。
6.3 @PropertySource
指定加载自定义的配置文件。
七、参数校验相关注解
7.1 Bean字段验证注解
@NotEmpty
@NotBlank
@Null
@NotNull
@AssertTrue
@AssertFalse
@Pattern(regex=,flag=)
@Min(value)
@Max(value)
@Size
@DecimalMin
@DecimalMax
@Past
@Future
@Digits
7.2 @Valid
用于标注验证对象的级联属性。
7.3 Validated
Spring提供的注解,于SpringMVC一起使用,标注方法的参数需要检查。
八、统一异常处理相关注解
8.1 @ControllerAdvice
注解定义全局异常处理类,包含@Component,所以可以被Spring扫描到。
8.2 @ExceptionHandler
注解声明异常处理方法,表示遇到这个异常,就执行标注的方法。
九、JPA数据持久化相关注解
9.1 @Transactional
可以标注在类上,也可以标注在方法上。
标注在类上:表示所有该类的public方法都配置相同的事务属性信息。
标注在方法上:表示该方法配置了事务属性信息。当类和方法上同时标注上@Transactional注解,方法的事务会覆盖类的事务配置信息。
9.2 @Entity
声明数据库实体类。
9.3 @Table
声明表名。
9.4 @Id
声明该字段为主键。
9.5 @GeneratedValue
声明主键的生成策略。
9.6 @Column
声明字段,经常用于属性名和表字段的映射。
9.7 @Transient
指定不需要持久化的字段。
9.8 @Lob
声明该字段为大字段。
9.9 @Enumerated
声明该字段是枚举类型的字段。
9.10 @Modifying
加在DAO方法上,表明是修改操作。
十、JSON格式化处理相关注解
10.1 @JsonFormat
用来格式化json数据。
10.2 @JsonIgnoreProperties
作用在类上用于过滤掉特定字段不返回或者不解析。
10.3 @JsonIgnore
一般用于属性上,作用和上面的@JsonIgnoreProperties一样。
10.4 @JsonUnwrapped
声明该字段是扁平化对象。
十一、测试处理相关注解
11.1 @Test
声明一个方法为测试方法。
11.2 @Transactional
声明测试的方法数据会回滚,避免污染数据。
11.3 @ActiveProfiles
常作用于测试类上,用于声明生效的Spring配置文件
11.4 @WithMockUser
SpringSecurity提供的,用来模拟一个真实用户,并且可以赋予权限。
完结!
相关文章:

【SpringBoot】SpringBoot常用注解
一、前言首先这里说的SpringBoot常用注解是指在我们开发项目过程中,我们经常使用的注解,包含Spring、SpringBoot、SpringCloud、SpringMVC等这些框架中的注解,而不仅仅是SpringBoot中的注解。这里只是作一个注解列举,每个注解具体…...

数据一致性
目录一、AOP 动态代理切入方法(1) Aspect Oriented Programming(2) 切入点表达式二、SpringBoot 项目扫描类(1) ResourceLoader 扫描类(2) Map 的 computeIfAbsent 方法(3) 反射几个常用 api① 创建一个测试注解② 创建测试 PO 类③ 反射 api 获取指定类的指定注解信息(4) 返回…...

Docker不做虚拟化内核,对.NET有什么影响?
引子前两天刷抖音,看见了这样一个问题。问题:容器化不做虚拟内核,会有什么弊端?Java很多方法会跟CPU的核数有关,这个时候调用系统函数,读到的是宿主机信息,而不是我们限制资源的大小。思考&…...

HTML总结
CSS代码风格 空格规范: 1. 属性值前面,冒号后面,保留一个空格; 2. 选择器(标签)和大括号中间保留空格。 基本语法概述: 1.HTML标签是由尖括号包围的关键词,如<html> 2.HTM…...

ByteHouse:基于ClickHouse的实时数仓能力升级解读
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 ByteHouse是火山引擎上的一款云原生数据仓库,为用户带来极速分析体验,能够支撑实时数据分析和海量数据离线分析。便捷的弹性扩缩容能力&…...

[SSD固态硬盘技术 15] FTL映射表的神秘面纱
为什么需要映射表?固态硬盘的存储器件采用的是闪存[5],具有以下几个特点: (1)读写基本单位是以页(Page)为单位,擦除是以块(Block)为单位。...

浅析依赖注入框架的生命周期(以 InversifyJS 为例)
在上一篇介绍了 VSCode 的依赖注入设计,并且实现了一个简单的 IOC 框架。但是距离成为一个生产环境可用的框架还差的很远。 行业内已经有许多非常优秀的开源 IOC 框架,它们划分了更为清晰地模块来应对复杂情况下依赖注入运行的正确性。 这里我将以 Inv…...

HER2靶向药物研发进展-销售数据-上市药品前景分析
HER2长期作为肿瘤领域的热门靶点之一,其原因是它在多部位、多种形式的癌症中均有异常的表达,据研究表明HER2除了在胃癌、胆道癌、胆管癌、乳腺癌、卵巢癌、结肠癌、膀胱癌、肺癌、子宫颈癌、子宫浆液性子宫内膜癌、头颈癌、食道癌中的异常表达还存在于多…...

【第38天】不同路径数问题 | 网格 dp 入门
本文已收录于专栏🌸《Java入门一百例》🌸学习指引序、专栏前言一、网格模型二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、【例题2】1、题目描述2、解题思路3、模板代码4、代码解析5.原题链接三、推荐专栏四、课后习题序、专…...

LINUX之链接命令
链接命令学习目标能够说出软链接的创建方式能够说出硬链接的创建方式1. 链接命令的介绍链接命令是创建链接文件,链接文件分为:软链接硬链接命令说明ln -s创建软链接ln创建硬链接2. 软链接类似于Windows下的快捷方式,当一个源文件的目录层级比较深&#x…...

1628_MIT 6.828 xv6_chapter0操作系统接口
全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这本书最初看名字以为是对早期unix的一个解读,但是看了开篇发现 不完全是,只是针对JOS教学OS系统来做的一些讲解。 Xv6是对UNIX v6的重新实…...

使用 Sahi 实现 Web 自动化测试
Sahi 是 Tyto Software 旗下的一个基于业务的开源 Web 应用自动化测试工具。Sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素。Sahi 支持 HTTPS 并且独立于 Web 站点,简单小巧却功能强大。它相对于 Selenium 等自动化测试工具…...

天津菲图尼克科技携洁净及无菌防护服解决方案与您相约2023生物发酵展
BIO CHINA 生物发酵产业一年一度行业盛会,由中国生物发酵产业协会主办,上海信世展览服务有限公司承办,2023第10届国际生物发酵产品与技术装备展览会(济南)于2023年3月30-4月1日在山东国际会展中心(济南市槐…...

Java 网络编程详解
1、什么是网络编程 在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。 应用场景: 1、即时通信 2、网游对战 3、邮件等等 Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序 2、网络编程三要素 2.1 IP地址 要…...

Scratch少儿编程案例-几何形式贪吃蛇
专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

一定要收藏的面试思维导图,粉丝分享面试经验
一位粉丝分享面试经验:1.常见面试题有哪些?主要从以下一些知识点做了准备: 常用的分析方法、Excel、SQL、 A/B测试、产品分析。然后每份面试针对职位要求,还有前期和HR聊天一点点了解这个职位之后,定向准备。 Excel、S…...

【博客615】通过systemd设置cgroup来限制服务资源争抢
通过systemd设置cgroup来限制服务资源争抢 1、场景 我们的宿主机上通常会用systemctl来管理一些agent服务,此时我们需要限制服务的cpu,memory等资源用量,以防止服务之前互相争抢资源,导致某些核心agent运行异常 2、systemd与cgro…...

C语言经典编程题100例(21-40)
21、练习3-2 计算符号函数的值对于任一整数n,符号函数sign(n)的定义如下:请编写程序计算该函数对任一输入整数的值。输入格式:输入在一行中给出整数n。输出格式:在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。输入样例1:10输出样例1:sig…...

Rabbitmq业务难点
Rabbitmq业务难点1.消息生产者发送的消息无法路由到任何一个队列怎么处理?2.聊聊Rabbitmq的七种工作模式3.Rabbitmq的消息确认机制4.Rabbitmq的消息持久化5.发布确认模式如何确保生产者能够成功将消息投递到消息队列6. Rabbitmq基于队列设置消息过期时间和单独针对消息设置过期…...

服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料
前言 百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使Linux电脑本地文件与百度网盘的apps(我的应用数据)/bypy目…...

Cesium-数字仿真-你总要了解
Cesium(专注于时空数据的实时可视化) cesium是一款三维地球开源框架(可以多平台、跨平台使用)cesium隶属于美国AGI公司(Analytical Graphics Incorporation),美国通用公司宇航部的工程师创始开源 周边产…...

原型、原型链、__proto__与prototype的区别、继承
一.什么是原型与原型链 根据MDN官方解释: JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象[[Prototype]] ,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类…...

前端 面经
1说一说cookie sessionStorage localStorage 区别?解题思路得分点 数据存储位置、生命周期、存储大小、写入方式、数据共享、发送请求时是否携带、应用场景 标准回答 Cookie、SessionStorage、 LocalStorage都是浏览器的本地存储。 它们的共同点:都是存储…...

[oeasy]python0080_设置RGB颜色_24bit_24位真彩色_颜色设置
RGB颜色 回忆上次内容 上次 首先了解了 索引颜色 \33[38;5;XXXm 设置 前景为索引色\33[48;5;XXXm 设置 背景为索引色 RGB每种颜色 可选0-5总共 6 级 想用 精确RGB值 真实地 大红色画个 大红桃心 ♥️ 有可能吗??🤔 rgb 模式 关于 RGB 模式…...

实战项目-用户评论数据情绪分析
目录1、基于词典的方法2、基于词袋或 Word2Vec 的方法2.1 词袋模型2.2 Word2Vec3、案例:用户评论情绪分析3.1 数据读取3.2 语料库分词处理3.3 Word2Vec 处理3.4 训练情绪分类模型3.5 对评论数据进行情绪判断目的:去判断一段文本、评论的情绪偏向在这里&a…...

day02 DOS(续)文本编辑快捷键 发展史
day02课堂笔记 1、常用的DOS命令(续) 1.1、del命令,删除一个或者多个文件 删除T1.class文件 C:\Users\Administrator>del T1.class 删除所有.class结尾的文件,支持模糊匹配 C:\Users\Administrator>del *.class T1.classT1…...

arm64与aarch64
结论: 目前arm64和aarch64概念已合并,新版64位arm程序统称aarch64. 问题引入: 存在部分机器,安装arm版本ss,会报错,提示 rootlocalhost ~]# rpm -ivh senseshiel50 59130arm64.rpm Verifying... ########…...

QString详解
QString存储16位Qchar(Unicode)字符串 QString使用隐式共享(copy-on-write)来提高性能。 什么是Unicode? unicode是一种国际标准,支持当今使用的大多数操作系统,他是US-ASCII和Latin-1的超集(与子集相同字符编码相同…...

SpringCloud微服务
一、微服务架构 1.1、单体应用架构 将项目所有模块(功能)打成jar或者war,然后部署一个进程 优点: 1:部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可。 2:技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开…...

Hive 连接及使用
1. 连接 有三种方式连接 hive: cli:直接输入 bin/hive 就可以进入 clihiveserver2、beelinewebui 1.1 hiveserver2/beeline 1、开启 hiveserver2 服务 // 前台运行,当 beeline 输入命令时,服务端会返回 OK [roothadoop1 bin]…...