Spring Boot 常用注解详解:全面指南

Spring Boot 中有许多常用的注解,这些注解用于配置、管理和定义 Spring Boot 应用程序的各个方面。以下是这些注解按大类和小类的方式分类,并附有解释和示例。

一、Spring Boot 核心注解

@SpringBootApplication  

解释:这是一个组合注解,通常用于主应用程序类,标志着这是 Spring Boot 应用程序的入口点。它包含了其他注解,如@Configuration、@ComponentScan 和@EnableAutoConfiguration。  

示例:

@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

@Configuration

  1. 解释:标志着一个类作为配置类,它通常用于定义 Bean。
  2. 示例:
@Configuration
public class MyConfig {@Beanpublic MyBean myBean() {return new MyBean();}
}

@ComponentScan  

解释:用于指定 Spring 容器扫描组件的基本包路径。  

示例:

  @SpringBootApplication@ComponentScan(basePackages = "com.example")public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

二、Spring Boot Web 注解

@Controller

  1. 解释:标志着一个类是 Spring MVC 控制器,处理 HTTP 请求。
  2. 示例:
@Controller
public class MyController {// Controller methods here
}

@RestController  

解释:结合@Controller 和@ResponseBody,用于创建 RESTful 风格的控制器。  示例:

@RestController
public class MyRestController {@GetMapping("/hello")public String hello() {return "Hello, World!";}
}

@RequestMapping  

解释:用于映射 HTTP 请求到控制器方法,并指定 URL 路径。  

示例:

@Controller
@RequestMapping("/my")
public class MyController {@GetMapping("/hello")public String hello() {return "Hello, World!";}
}

三、Spring Boot Bean 注解

@Component

解释:标志着一个类是 Spring 的组件,会被 Spring 扫描并注册为一个 Bean。

示例:

@Component
public class MyComponent {// Component logic here
}

@Service

解释:

用于标记一个类作为业务逻辑的服务组件。

示例:

@Service
public class MyService {// Service logic here
}

@Repository

解释:

用于标记一个类作为数据访问组件,通常用于持久层。

示例:

@Repository
public class MyRepository {// Repository logic here
}

@Controller

解释:用于标记一个类作为 Spring MVC 控制器。

示例:

@Controller
public class MyController {// Controller logic here
}

@RestController

解释:结合@Controller 和@ResponseBody,用于创建 RESTful 风格的控制器。

示例:

@RestController
public class MyRestController {@GetMapping("/hello")public String hello() {return "Hello, World!";}
}

@Configuration

解释:标志着一个类是 Spring 的配置类,通常用于定义 Bean。

示例:

@Configuration
public class MyConfig {@Beanpublic MyBean myBean() {return new MyBean();}
}

这些注解用于定义和管理 Spring Bean,是 Spring Boot 应用程序中的重要组成部分。每个注解都有不同的用途和上下文,你可以根据应用程序的需求使用适当的注解。在 Spring Boot 应用程序中,使用这些注解可以轻松创建和管理 Bean,而无需显式的 XML 配置。

四、Spring Boot 数据访问注解

@Repository  

解释:标志着一个类是 Spring Data 仓库,用于数据库访问。  

示例:

@Repositorypublic class UserRepository {// Data access methods here
}

@Entity  

解释:用于定义 JPA 实体类,映射到数据库表。

示例:

@Entitypublic class User {// Entity fields and methods here
}

五、Spring Boot 依赖注入注解

@Autowired  

解释:用于自动装配 Bean,通常与构造函数、Setter 方法或字段一起使用。  

示例:

  @Servicepublic class MyService {private final MyRepository repository;@Autowiredpublic MyService(MyRepository repository) {this.repository = repository;}
}

@Qualifier  

解释:与@Autowired 一起使用,用于指定要注入的 Bean 的名称。  

示例:

  @Servicepublic class MyService {private final MyRepository repository;@Autowiredpublic MyService(@Qualifier("myRepository") MyRepository repository) {this.repository = repository;}
}

六、其他常用注解

@Value

  1. 解释:用于注入属性值,通常从配置文件中获取。
  2. 示例:
@Component
public class MyComponent {@Value("${my.property}")private String myProperty;
}

@ConfigurationProperties

解释:用于将配置属性绑定到一个 POJO 类,通常用于从配置文件中读取属性值。

示例:

  @Configuration@ConfigurationProperties(prefix = "my")public class MyProperties {private String property1;private int property2;// Getters and setters
}

这只是 Spring Boot 中一些常用注解的分类和示例,还有许多其他注解可用于更专业的用例。根据你的需求,你可以选择使用适当的注解来配置和管理你的 Spring Boot 应用程序。

使用 Apifox 测试和管理接口

Apifox 是一个比 Postman 更强大的接口测试工具,Apifox = Postman + Swagger + Mock + JMeter, 支持调试 http(s)、WebSocket、Socket、gRPCDubbo 等协议的接口,并且集成了 IDEA 插件。在开发完接口后,可以通过 Apifox 的 IDEA 插件一键自动生成接口文档,多端同步,非常方便测试和维护。

知识扩展:

  • 一文看懂 Spring Boot Banner 生成功能
  • Spring Boot Bean 生命周期的用法详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/143754.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传输层协议 UDP

传输层协议 UDP 一、UDP 协议段格式二、再谈 UDP 特点三、下期预告 一、UDP 协议段格式 源端口号:该字段是一个16 位的字段,表示发送方应用程序的端口号。 目的端口号:该字段与源端口类似,它也是一个16 位的字段,表示…

vue最新前端面试题系列(1-5)

前言: 欢迎浏览和关注本专栏《 前端就业宝典 》, 不管是扭螺丝还是造火箭, 多学点知识总没错。 这个专栏是扭螺丝之上要造火箭级别的知识,会给前端工作学习的小伙伴带来意想不到的帮助。 文章目录 1,Vue 常用的修饰符都有哪些?事件修饰符表单修饰符2,$route和 $router的…

基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2015/CEC2018/CEC2023(MATLAB代码)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法(Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Se…

YUM 升级 PHP7

文章目录 YUM 升级 PHP71. 查看当前 PHP 信息2. YUM 安装 PHP73. 查看 PHP 版本4. 启动PHP-FPM YUM 升级 PHP7 参考地址:网站地址 参考地址:网站地址 1. 查看当前 PHP 信息 # 查看 PHP 版本信息 php -v# 查看 yum 源中 PHP 信息 yum list | grep php2. …

Linux学习第22天:Linux中断驱动开发(一): 突如其来

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中断作为驱动开发中很重要的一个概念,在实际的项目实践中经常用到。本节的主要内容包括中断简介、硬件原理分析、驱动程序开发及运行测试。其中驱动程…

网工内推 | H3C售前工程师,上市公司,13薪,有带薪年假、年终奖

01 长虹佳华 招聘岗位:高级售前工程师(H3C) 职责描述: 1. 负责公司签约代理的网络安全产品在区域的项目售前技术支持工作,包括项目售前交流、方案编写、招投标、产品测试等相关支持工作; 2. 与厂商产品部门…

多数据源Pagehelper怎么配置

1.遇到的问题 若依增加多数据源,分页报错,查了下pagehelper也要修改配置。 官方配置: 官方文档:连接多数据源sqlServer使用分页的情况下报错,不使用分页时正常。 Issue #I3NJMR 若依/RuoYi - Gitee.com 我的配置&a…

msvcp140.dll丢失的解决方法与msvcp140.dll是什么东西详细解析

在使用电脑时,可能会遇到打开软件时提示“找不到 msvcp140.dll,无法继续执行代码”的问题。这通常意味着你的计算机上缺少 Microsoft Visual C Redistributable 的运行时库,或者该库的版本不正确。下面是我找了几天的修复方法,今天…

搭建Android自动化python+appium环境

一. 需要软件 JDK:JAVA安装后配置JDK环境 SDK:SDK下载后配置adb环境 Python:pyhton语言 Pycharm:python脚本编译工具 Appium-python-client:pyhton中的库 Appium客户端 二. 搭建步骤 1. 配置JDK环境 ①. 下载安装java: https://www.oracle.com/java/technologies/jav…

聊聊并发编程——多线程之AQS

目录 队列同步器(AQS) 独占锁示例 AQS之同步队列结构 解析AQS实现 队列同步器(AQS) 队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组 件的基础框架&…

26591-2011 粮油机械 糙米精选机

声明 本文是学习GB-T 26591-2011 粮油机械 糙米精选机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了糙米精选机的有关术语和定义、工作原理、型号及基本参数、技术要求、试验方法、检 验规则、标志、包装、运输和储存要求。 …

Python二级 每周练习题20

练习一: 日期计算器 设计一款日期计算程序,能否实现下面的功能: (1)要求用户分别输入年、月、日(分三次输入); (2)程序自动会根据输入的年月日计算出这一天是这一年的第几天; (3)输出格式为:这…

C++——namespace std

命名空间(namespace) 0.使用方法 namespace 命名空间名 {... } 1. 每个命名空间都是一个作用域 同其他作用域类似,命名空间中的每个名字都必须表示该空间内的唯一实体。因为不同命名空间的作用域不同,所以在不同命名空间内可以…

巨人互动|Facebook海外户Facebook的特点优势

Facebook作为全球最大的社交媒体平台之一,同时也是最受欢迎的社交网站之一,Facebook具有许多独特的特点和优势。本文小编将说一些关于Facebook的特点及优势。 1、全球化 Facebook拥有数十亿的全球用户,覆盖了几乎所有国家和地区。这使得人们…

ios证书类型及其作用说明

ios证书类型及其作用说明 很多刚开始接触iOS证书的开发者可能不是很了解iOS证书的类型功能和概念。下面对iOS证书的几个方面进行介绍。 apple开发账号分类: 免费账号: 无需支付费用给apple,使用个人信息注册的账号 可以开发测试安装&…

文件内容显示

目录 1.浏览普通文件 1.1. 文件内容查看 1.1.1. cat 命令 例: 1.1.2 扩展tac命令: 1.1.3. more 命令 1.1.4. less命令 1.1.5. head命令 1.1.6. tail命令 1.2. 文件属性信息查看 1.2.1. file 命令 1.2.2. stat 命令 2. 文件内容过滤…

计算机竞赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…

DSOMEIP丢数据问题分析和总结:

(1)问题现象 无论使用arm64硬件、x86 ubuntu电脑、ubuntu docker哪种组合进行DSOMEIP event通信,接收端都会在event payload长度增加到一定程度时udp方式出现丢数据现象。 总体上arm64硬件略优于x86 ubuntu电脑,x86 ubuntu电脑略优…

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包,它包括多个程序,如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等,可全部安装,也可根据实际需要选择进行安装,都是最新版…

linux权限机制,

目录 用户与组,id,passwd 查看登录用户whomi,who,w 创建用户 useradd 修改用户信息usermod 删除指定用户userdel 组 ​编辑创建修改删除组groupadd groupmod groupdel 权限 ls-l 修改文件所属用户,所属组 chown,chgrp(change group) 修改权限 chmod 默认权…