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脚本,可以看到有很多公开方法ÿ…...
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函数可以在一个目标字符串中查找子字符串,返回值为子字符串在目标字符串中的起始位置 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 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 点击此处跳转题目。 示例 1: 给定 matrix [ [1,2,3], [4,5,6], …...
vue3 pdf、word等文件下载
效果: <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] 李鑫,莫思特,黄华,…...
Vite+React+TypeScript构建个人作品集网站:从技术选型到GitHub Pages自动化部署
1. 项目概述:一个现代开发者如何构建自己的技术名片最近刚把自己的个人作品集网站重构上线,地址是https://yucco-k.github.io。这不仅仅是一个展示作品的静态页面,更是一个我用来实践和整合现代前端技术栈的“游乐场”。对于开发者而言&#…...
Herc.ai:一站式AI API网关,统一调用GPT-4、Gemini等主流模型
1. 项目概述:Herc.ai,一个面向开发者的全能AI API网关如果你正在寻找一个能让你在项目中轻松集成GPT-4、Gemini、DALL-E、Flux等主流AI模型,同时又不想被单一供应商绑定、不想处理复杂的多API密钥管理、并且希望有一个统一的、开发者友好的接…...
MCP协议专用Linter:mcp-lint工具的设计、规则与集成实践
1. 项目概述:一个为MCP协议量身定制的代码质量守护者 最近在折腾MCP(Model Context Protocol)相关的开发,发现一个挺有意思的项目: robert19001-cmyk/mcp-lint 。光看名字,你大概能猜到它是个代码检查工具…...
嵌入式固件安全更新与密钥管理实践
1. 嵌入式固件安全更新概述在嵌入式系统开发中,固件更新是设备生命周期管理的关键环节。不同于传统PC软件的更新,嵌入式设备的固件更新面临更多挑战:受限的计算资源、不稳定的通信环境、严苛的安全要求等。我曾参与过多个工业控制设备的OTA升…...
AAAI‘2026 模型记错了,检索也救不了?KG+TruthfulRAG想解决这个死结
背景介绍 近年来,大语言模型(LLM)在生成与理解任务上表现突出,但其内部“参数化知识”具有静态、滞后的特点: 面对时效性知识、专业知识、隐私知识等,模型可能缺乏覆盖;即便检索增强生成&#…...
TINA-TI仿真实战:从运放振铃到电源设计的电路调试指南
1. 为什么我们需要TINA-TI仿真软件 作为一个在硬件设计领域摸爬滚打多年的工程师,我见过太多因为电路设计问题导致的返工案例。记得有一次,我们团队花了两周时间手工焊接的样机,上电后运放输出端出现了严重的振铃现象,不得不全部拆…...
Honey Select 2汉化补丁:5分钟打造你的完美游戏体验
Honey Select 2汉化补丁:5分钟打造你的完美游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为《Honey Select 2》的语言障碍而烦恼吗&a…...
开源工具phantom-secrets:轻量级秘密管理方案,助力安全开发与CI/CD
1. 项目概述:一个用于秘密管理的开源工具 最近在整理自己的开发环境时,发现各种API密钥、数据库密码、配置文件里的敏感信息散落在各个角落,管理起来非常头疼。用文本文件记不安全,用密码管理器又觉得和开发流程有点脱节。直到我发…...
5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼
5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 你是否经常需要查看技术文档、API说明或学习笔记,却…...
实战指南:从零开始掌握Visual C++运行库一键修复的高效用法
实战指南:从零开始掌握Visual C运行库一键修复的高效用法 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库是Windows系统中至关重要的组…...
