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

SpringBoot 常用注解

随着Spring及Spring Boot的发展,基于Java的配置已经慢慢替代了基于xml的配置形式。本篇文章为大家整理和简介Spring Boot中常用的注解及其功能。

  SpringBoot注解

  @SpringBootApplication:开启Spring Boot自动配置的核心注解,相关等同于@Configuration,@EnableAutoConfiguration和@ComponentScan三个注解同时使用。

  @EnableAutoConfiguration:SpringBoot自动配置开启注解。开启之后,会尝试根据添加到classpath中jar依赖自动配置相关组件。是Spring Boot自动配置机制的核心注解之一。

  @ConditionalOnXXXX:Spring Boot基于@Conditional扩展出的衍生注解,根据是否满足某一个特定条件来决定是否加载指定的Bean。比如扩展出的注解有:@ConditionalOnBean、@ConditionalOnClass等。

  @ConfigurationProperties:基于类型安全的属性配置注入,可以将properties属性和一个Bean及其属性关联,从而实现类型安全配置。

  Spring基础注解

  @Conditional:是Spring Boot中大量使用的注解之一,它可以根据是否满足某一个特定条件来决定是否加载指定的Bean。

  @ComponentScan:该注解默认会扫描该类所在的包下所有的配置类,相当于xml中的context:component-scan。如果扫描到有@Component、@Controller、@Service等注解的类,将其注册为Bean,也可以自动收集所有的Spring组件,包括@Configuration类。Spring Boot中会扫描启动类所在包下以及子包下的使用了以上注解的类。

  @Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法。

  @Profile:提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

  @Import:用来导入其他配置类,作用就是和xml配置的import标签作用一样,允许通过它引入@Configuration注解的类(java config),Spring4.2以后也可以导入普通的Java并将其声明为一个bean。

  @ImportResource:用来导入一个传统的xml配置文件。

  @Autowired:自动导入依赖的bean,可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。与@Resource功能相似,但默认根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier。

  @Service:一般用于标注业务层组件,表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean。

  @Component:泛指组件,当组件不好归类的时候,可以使用这个注解进行标注。

  @Repository:持久层组件,用于标注数据访问组件,即DAO组件。

  @Bean:用@Bean标注方法等价于XML中配置的bean。

  @Value:将配置文件中key对应的值赋值给它标注的属性。

  @Inject:是JSR330中的规范,等价于默认的@Autowired。根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Named。

  @Bean:相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

  @AutoWired:自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。

  @Qualifier:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入,但能进行更细粒度的控制如何选择候选者。

  @Resource:JSR250规范的实现,根据名称进行自动装配的,一般会指定一个name属性。

  @JsonBackReference:jackson框架注解,解决嵌套外链问题。

  @PropertySource:加载指定配置文件,通常为自定义properties文件。

  Spring Web注解 郑州人流医院哪家好 http://mobile.zhongyuan120.com/

  @ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据或接口的交互时使用,用于构建RESTful的api。一般情况下会将返回的类转为Json字符串的形式返回给客户端。

  @Controller:将被修饰的类被实例化并注入Spring IOC容器中。语义化的作用,即代表该类是充当Controller的作用。一般由该类(控制器)负责将用户发来的URL请求转发到对应的服务接口(service层)。

  @RestController:用于标注控制层组件,@ResponseBody和@Controller的合集。

  @RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。

  @GetMapping:是一个组合注解,是@RequestMapping(method=RequestMethod.GET)的缩写。

  @PostMapping是一个组合注解,是@RequestMapping(method=RequestMethod.POST)的缩写。

  @PathVariable:spring3.0的一个新功能,用于接收请求路径中占位符的值。通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:URL中的{xxx}占位符可以通过@PathVariable(“xxx“)绑定到操作方法的入参中。

  @RequestParam:将请求参数绑定到控制器的方法参数上。

  @ControllerAdvice:一个增强的Controller,常用于全局异常处理、全局数据绑定、全局数据预处理等。

  @ExceptionHandler:与@ControllerAdvice结合使用,用于统一异常处理。

  JPA注解

  @Entity:表明这是一个实体类,比如实体类UserEntity,默认对应数据库中的表名是user_entity。一般与@Table结合使用,是如果表名和实体类名相同的话,@Table可以省略。

  @Table:当实体类与其映射的数据库表名不同名时需要使用@Table注解说明,该标注与@Entity注解并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。

  @MappedSuperClass:注解使用在父类上面,标识的类表示其不能映射到数据库表,被标识的类不能再使用@Entity或@Table注解。

  @NoRepositoryBean:一般用作父类的repository,告诉JPA不要创建对应接口的bean对象就在类上加@NoRepositoryBean注解。

  @Column:用来标识实体类中属性与数据表中字段的对应关系,如果字段名与列名相同,则可以省略。

  @Id:表示该属性为主键。

  @GeneratedValue:为实体生成唯一标识的主键提供生成策略。主键生成策略包括sequence,Auto、IDENTITY、native等,Auto表示可在多个数据库间切换。

  @Transient:表示该属性不进行数据库表的字段映射,ORM框架将忽略该属性。

  @JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。

  @JoinColumn:用来指定与所操作实体或实体集合相关联的数据库表中的列字段。一对一,本表中指向另一个表的外键;一对多,另一个表指向本表的外键。

  @OneToOne、@OneToMany、@ManyToOne:对应hibernate配置文件中的一对一,一对多,多对一。

相关文章:

SpringBoot 常用注解

随着Spring及Spring Boot的发展,基于Java的配置已经慢慢替代了基于xml的配置形式。本篇文章为大家整理和简介Spring Boot中常用的注解及其功能。 SpringBoot注解 SpringBootApplication:开启Spring Boot自动配置的核心注解,相关等同于Configu…...

k8s deployment创建pod流程图

参考 k8s 创建pod和deployment的流程 - SoulChild随笔记...

C++ 逗号运算符

使用逗号运算符是为了把几个表达式放在一起。 整个逗号表达式的值为系列中最后一个表达式的值。 从本质上讲,逗号的作用是将一系列运算按顺序执行。 表达式1, 表达式2求解过程是:先求解表达式 1,再求解表达式 2。整个逗号表达式的值是表达…...

jdbc集成phoneix hbase

为什么使用jdbc集成 需求简单,只是往phoneix存储数据原本项目已经有mysql的mybatis plus集成,如果采用dataSource方式就需要采用多数据源的方式,造成架构复杂化,使用复杂化,并且修改地方过多。 Qualifier("phoe…...

16.遍历二叉树,线索二叉树

目录 一. 遍历二叉树 (1)三种遍历方式 (2)递归遍历算法 (3)非递归遍历算法 (4)层次遍历算法 二. 基于递归遍历算法的二叉树有关算法 (1)二叉树的建立 …...

电商平台按关键字搜索商品淘宝京东拼多多api接口PHP示例

关键词搜索商品接口的作用是通过调用接口来实现在电商平台中进行商品搜索。具体而言,该接口可以提供以下功能和作用: 商品搜索:用户可以通过输入关键词,在电商平台上进行商品搜索。接口可以根据关键词对商品的名称、描述、标签等…...

胖小酱之恰恰是什么

意思是:指所指的事物截然不同,正好相反。 恰恰相反的近义词:事与愿违、适得其反 一、事与愿违 [ sh yǔ yun wi ] 【解释】:事实与愿望相反。指原来打算做的事没能做到。 【出自】:茅盾《子夜》十六:不…...

豪越科技受邀出席2023中国算力大会

2023年8月17日-8月20日,“算汇银川 数创未来”创新中国行走进银川暨2023中国算力大会在银川中关村创新中心召开。政府领导、行业领袖、专家学者、以及大型科技企业负责人齐聚大会现场,围绕算力基础设施建设、创新应用和产业发展成果等方面开展广泛交流与…...

python脚本——批量将word文件转换成多张图片

前提:有时候需要快速查看word文档的内容是否自己需要的,或者就是单纯需要将word文档转换成一张张图片。 思路:word文档直接生成图片比较蛮烦,可能会引起格式变化,就先将word文档转换成PDF,然后将PDF文档转…...

FairyGUI编辑器的弹窗操作【插件】

之前在FairyGUI编辑器菜单扩展中,我使用了App.Alert("复制失败")来提示操作是否成功。这篇则会说一下我们可以使用的弹窗提示,以及做到类似资源发布成功时的“发布成功”飘窗。 打开APP的API脚本,可以看到有很多公开方法&#xff…...

Elasticsearch(十三)搜索---搜索匹配功能④--Constant Score查询、Function Score查询

一、前言 之前我们学习了布尔查询,知道了filter查询只在乎查询条件和文档的匹配程度,但不会根据匹配程度对文档进行打分,而对于must、should这两个布尔查询会对文档进行打分,那如果我想在查询的时候同时不去在乎文档的打分&#…...

直播系统源码协议探索篇(二):网络套接字协议WebSocket

上一篇我们分析了直播平台的会话初始化协议SIP,他关乎着直播平台的实时通信和多方互动技术的实现,今天我们来讲另一个协议,叫网络套接字协议WebSocket,WebSocket基于TCP在客户端与服务器建立双向通信的网络协议,并且可…...

Windows 11 下使用 VMWare Workstation 17 Pro 新建 CentOS Stream 9 64位 虚拟机 并配置网络

文章目录 为什么选择 CentOS Stream 9下载安装访问连接快照克隆网络配置 为什么选择 CentOS Stream 9 CentOS Linux 8: 已经过了 End-of-life (EOL)CentOS Linux 7: EOL Jun 30th, 2024CentOS Stream 8: EOL May 31st, 2024CentOS Stream 9: End of RHEL9 full support phase …...

生信豆芽菜-缺氧评分的计算

网址:http://www.sxdyc.com/gradeHypoxia 1、数据准备 表达谱数据,行为基因,列为样本 2、提交后,等待运行成功即可下载 当然,如果不清楚数据是什么样的,可以选择下载我们的示例数据,也可以…...

C++:通过find/substr分割字符串

find函数可以在一个目标字符串中查找子字符串&#xff0c;返回值为子字符串在目标字符串中的起始位置 substr通过起始位置和长度可以截取一段字符串 将find和substr结合可以用于分割字符串 #include <iostream> #include <string> #include <tuple>using …...

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges 1、问题描述2、问题原因3、解决方法4、sql developer 连接oracle 成功 1、问题描述 使用sys账户以SYSDBA角色登录失败 报错 ORA-01031: insufficient privileges 2、问题原因 因为没有给sys账户分…...

LeetCode 面试题 01.07. 旋转矩阵

文章目录 一、题目二、C# 题解 一、题目 给你一幅由 N N 矩阵表示的图像&#xff0c;其中每个像素的大小为 4 字节。请你设计一种算法&#xff0c;将图像旋转 90 度。 不占用额外内存空间能否做到&#xff1f; 点击此处跳转题目。 示例 1: 给定 matrix [ [1,2,3], [4,5,6], …...

vue3 pdf、word等文件下载

效果&#xff1a; <div class"byLawBox"><div class"titleBox">规章制度公示</div><div class"contentBox"><TableList:loading"byLawloading"ref"byLawtablistRef":hasImport"false"…...

带你了解SpringBoot---开启Durid 监控

文章目录 数据库操作--开启Durid 监控整合Druid 到Spring-Boot官方文档基本介绍Durid 基本使用代码实现 Durid 监控功能-SQL 监控需求:SQL 监控数据SQL 监控数据-测试页面 Durid 监控功能-Web 关联监控需求:Web 关联监控配置-Web 应用、URI 监控重启项目 Durid 监控功能-SQL 防…...

matlab 点云精配准(3)——Trimmed ICP

目录 一、算法原理1、原理概述2、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,matlab 点云精配准(3)——Trimmed ICP。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述 见论文:[1] 李鑫,莫思特,黄华,…...

nodejs开发环境搭建示例

服务与后端 {"name": "AsaiCC","private": true,"version": "1.0.0","description": "","main": "main.js","bin": "index.js","author": "&…...

网络安全(大厂)面试题

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&#xf…...

GC面临的困境,JVM是如何解决跨代引用的?

本文已收录至GitHub&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 原创不易&#xff0c;注重版权。转载请注明原作者和原文链接 文章目录 跨代引用问题记忆集卡表写屏障写屏障的伪共享问题 前面我们讲了可达性分析和根节点枚举&#xff0c…...

Qt下拉菜单

1&#xff0c;QComboBox 2&#xff0c;setMenu()---设置下拉菜单 AI对话未来丨智能写作对话: setMenu()是QWidget类的一个成员函数&#xff0c;在Qt中用于将一个菜单作为一个控件的下拉菜单设置。具体来说&#xff0c;它会把相应的菜单对象与该控件关联&#xff0c;并在控件上…...

考研C语言进阶题库——更新41-50题

目录 41.编写程序要求输出整数a和b若a和b的平方和大于100&#xff0c;则输出a和b的平方和&#xff0c;否则输出a和b的和 42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a;第一项是1/1&#xff0c;第二项是是…...

JVM——JVM 垃圾回收

文章目录 写在前面本节常见面试题本文导火索 1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定1.5 主要进行 gc 的区域 2 对象已经死亡&#xff1f;2.1 引用计数法2.2 可达性分析算…...

浅析阿里云灵积(平台)模型服务

简介&#xff1a; DashScope灵积模型服务以模型为中心&#xff0c;致力于面向AI应用开发者提供品类丰富、数量众多的模型选择&#xff0c;并为其提供开箱即用、能力卓越、成本经济的模型服务API。DashScope灵积模型服务依托达摩院等机构的优质模型&#xff0c;在阿里云基础设施…...

使用 PyTorch 进行高效图像分割:第 1 部分

一、说明 在这个由 4 部分组成的系列中&#xff0c;我们将使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。我们将在本文中从图像分割所需的基本概念和想法开始本系列。 图1&#xff1a;宠物图像及其分割掩码&#xff08;来源&#xff1a;牛津-IIIT宠物数据集) 图像分…...

vellum (Discovering Houdini VellumⅡ柔体系统)学习笔记

视频地址&#xff1a; https://www.bilibili.com/video/BV1ve411u7nE?p3&spm_id_frompageDriver&vd_source044ee2998086c02fedb124921a28c963&#xff08;搬运&#xff09; 个人笔记如有错误欢迎指正&#xff1b;希望可以节省你的学习时间 ~享受艺术 干杯&#x1f37b…...

最优的家电设备交互方式是什么?详解家电设备交互的演进之旅

家电&#xff0c;在人们的日常生活中扮演着不可或缺的角色&#xff0c;也是提升人们幸福感的重要组成部分&#xff0c;那你了解家电的发展史吗&#xff1f; 70年代 结婚流行“四大件”&#xff1a;手表、自行车、缝纫机&#xff0c;收音机&#xff0c;合成“三转一响”。 80年…...

4399网站做游戏赚钱/中央人民政府

我听到的一些发声 你们赚的钱已经可以了&#xff1a; 我一个发小是做土木工程的&#xff0c;上海大学博士&#xff0c;参与很多著名建筑的工程&#xff0c;但是从薪资上看&#xff0c;还不如一些稍微像样的公司的6年多的高级开发。为什么&#xff1f;这就是行业的红利&#xf…...

建网站与发布网站/网络公司网站建设

对于那些vim初学者&#xff0c;强烈建议看看这个交互式的vim教程。 记录我总结的VIM技巧 一、删除 &#xff08;1&#xff09;d/text 删除从文本中出现“text”中所指定字样的位置&#xff0c;一直向前直到下一个该字样所出现的位置&#xff08;但不包括该字 样&#xf…...

网站建设论文伯乐在线/公众号推广引流

2019独角兽企业重金招聘Python工程师标准>>> 对于请求头Content-Type&#xff0c;默认application/x-www-form-urlencoded。 1、&#xff08;可用&#xff09; CloseableHttpClient client HttpClients.createDefault(); // 实例化一个post对象 Ht…...

宁乡网站建设uuv9/写文案接单平台

椭圆的特性 以中心在原点&#xff0c;长半轴为a&#xff0c;短半轴为b的标准椭圆为例。 根据椭圆的对称性&#xff0c;只需讨论第一象限内的1/4椭圆弧的生成即可。 第一象限内的1/4椭圆弧的像素分布情况&#xff1a; 以弧上斜率为-1的点作为分界&#xff0c;将第一象限内的1/…...

邢台泰尚网络科技有限公司/百度竞价优化排名

判断一个元素是否在集合中 数组&#xff0c;O(1) 链表&#xff0c;O(N) 树&#xff0c;O(lgN) 散列表(又称哈希表&#xff0c;Hash table)&#xff0c;O(N/k) 布隆过滤器&#xff08;Bloom Filter&#xff09;&#xff0c;O(1) 转载于:https://www.cnblogs.com/Renyi-Fan/p/786…...

中国装修网官方网站/九幺seo工具

python 递归调用默认上限&#xff1a;1000次 1、比较运算符&#xff1a;__cmp__(self,other)比较__eq__(self,other)相等__lt__(self,other)小于__gt__(self,other)大于2、逻辑运算符&#xff1a;__or__(self,other)__and__(self,other)3、数学运算符&#xff1a;__add__(self,…...