Spring Spring Boot 常用注解总结

在 Java 开发中,Spring 和 Spring Boot 框架广泛应用于企业级应用开发。这两个框架提供了丰富的注解,使得开发更加高效和便捷。本文将对 Spring 和 Spring Boot 中常用的注解进行总结。

一、Spring 常用注解

1. @Component

  • 作用:用于将普通的 Java 类标记为 Spring 中的 Bean。被标记的类将被 Spring 容器管理,可以通过依赖注入的方式使用。
  • 示例

@Component
public class UserService {//...
}

2. @Autowired

  • 作用:自动装配 Bean。当一个类的成员变量、方法参数或构造函数参数被标记为 @Autowired 时,Spring 容器会自动将匹配类型的 Bean 注入到该成员变量、方法参数或构造函数中。
@Component
public class OrderService {@Autowiredprivate UserService userService;//...
}

3. @Service

  • 作用:用于标注业务逻辑层的组件。通常用于表示服务类,这些类通常包含业务逻辑和处理数据的方法。
  • 示例

@Service
public class UserServiceImpl implements UserService {//...
}

4. @Repository

  • 作用:用于标注数据访问层的组件。通常用于表示数据访问对象(DAO)类,这些类负责与数据库进行交互。
  • 示例

@Repository
public class UserDaoImpl implements UserDao {//...
}

5. @Controller

  • 作用:用于标注表示层的组件。通常用于表示控制器类,这些类处理 HTTP 请求并返回响应。
  • 示例

@Controller
public class UserController {@Autowiredprivate UserService userService;//...
}

6. @RequestMapping

  • 作用:用于将 HTTP 请求映射到特定的方法上。可以在类级别和方法级别使用。
  • 示例
@Controller
@RequestMapping("/users")
public class UserController {@RequestMapping("/list")public String listUsers() {//...return "user/list";}
}

7. @PathVariable

  • 作用:用于获取 URL 中的路径变量。当 URL 中的部分内容是动态的时,可以使用 @PathVariable 注解将其绑定到方法参数上。
  • 示例

@Controller
@RequestMapping("/users")
public class UserController {@RequestMapping("/{id}")public String getUserById(@PathVariable("id") Long id) {//...return "user/detail";}
}

8. @RequestParam

  • 作用:用于获取 HTTP 请求中的参数。可以将请求参数绑定到方法参数上。
  • 示例

@Controller
@RequestMapping("/users")
public class UserController {@RequestMapping("/search")public String searchUsers(@RequestParam("keyword") String keyword) {//...return "user/search";}
}

二、Spring Boot 常用注解

1. @SpringBootApplication

  • 作用:这是一个组合注解,包含了 @Configuration@EnableAutoConfiguration 和 @ComponentScan。用于标记一个主类,该主类是 Spring Boot 应用的入口点。
  • 示例

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

2. @RestController

  • 作用:用于标注控制器类,该类中的方法将返回 JSON、XML 或其他格式的响应。相当于 @Controller 和 @ResponseBody 的组合。
  • 示例

@RestController
@RequestMapping("/api/users")
public class UserApiController {//...
}

3. @GetMapping

  • 作用:用于将 HTTP GET 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.GET) 的简化形式。
  • 示例

@RestController
@RequestMapping("/api/users")
public class UserApiController {@GetMapping("/{id}")public User getUserById(@PathVariable("id") Long id) {//...return user;}
}

4. @PostMapping

  • 作用:用于将 HTTP POST 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.POST) 的简化形式。
  • 示例

收起

java

复制

@RestController
@RequestMapping("/api/users")
public class UserApiController {@PostMappingpublic User createUser(@RequestBody User user) {//...return user;}
}

5. @PutMapping

  • 作用:用于将 HTTP PUT 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.PUT) 的简化形式。
  • 示例

收起

java

复制

@RestController
@RequestMapping("/api/users")
public class UserApiController {@PutMapping("/{id}")public User updateUser(@PathVariable("id") Long id, @RequestBody User user) {//...return user;}
}

6. @DeleteMapping

  • 作用:用于将 HTTP DELETE 请求映射到特定的方法上。是 @RequestMapping(method = RequestMethod.DELETE) 的简化形式。
  • 示例

@RestController
@RequestMapping("/api/users")
public class UserApiController {@DeleteMapping("/{id}")public void deleteUser(@PathVariable("id") Long id) {//...}
}

7. @Value

  • 作用:用于注入配置文件中的属性值。可以将配置文件中的属性值注入到类的成员变量、方法参数或构造函数参数中。
  • 示例

@Component
public class MyService {@Value("${my.property}")private String myProperty;//...
}

8. @ConfigurationProperties

  • 作用:用于将配置文件中的属性绑定到 Java 对象上。可以将一组相关的属性绑定到一个 Java 对象中,方便管理和使用配置。
  • 示例

@Component
@ConfigurationProperties(prefix = "myapp")
public class AppConfig {private String property1;private int property2;// getters and setters
}

以上是 Spring 和 Spring Boot 中常用的注解总结。这些注解可以大大提高开发效率,使代码更加简洁和易于维护。在实际开发中,可以根据具体需求选择合适的注解来实现功能。

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

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

相关文章

安装宝塔 Windows 面板

操作场景 宝塔面板是一款使用很方便、功能强大、交互友好且终身免费的服务器管理软件,支持 Linux 与 Windows 系统。在宝塔面板中,您可以一键配置 LAMP、LNMP、网站、数据库、FTP、SSL,还可以通过 Web 端轻松管理服务器。 本文介绍如何在 W…

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具,能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台,它能支持物理引擎,允许机器人在虚拟环境中模拟和测试。结合ROS,它能提供一个完整的…

「IDE」集成开发环境专栏目录大纲

✨博客主页何曾参静谧的博客📌文章专栏「IDE」集成开发环境📚全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定…

Lucene 和 Elasticsearch 中更好的二进制量化 (BBQ)

作者:来自 Elastic Benjamin Trent Lucene 和 Elasticsearch 中更好的二进制量化 (BBQ)。 嵌入模型输出 float32 向量,通常对于高效处理和实际应用来说太大。Elasticsearch 支持 int8 标量量化,以减小向量大小,同时保持性能。其他…

Odoo:免费开源的钢铁冶金行业ERP管理系统

文 / 开源智造 Odoo亚太金牌服务 简介 Odoo免费开源ERP集成计质量设备大宗原料采购,备件设材全生命周期,多业务模式货控销售,全要素追溯单品,无人值守计量物流,大宗贸易交易和精细化成本管理等方案;覆盖…

Linux设置socks代理

公司里绝大多数主机已经禁止外网访问,仅保留一台主机设置socks作为代理服务器。如下为对socks这一概念的学习整理 什么是socks 是一种OSI模型下会话层的协议,位于表示层与传输层之间,作用是: exchanges network packets between…

MySQL数据库:SQL语言入门 (学习笔记)

SQL(Structured Query Language)是结构化查询语言的简称,它是一种数据库查询和程序设计语言,同时也是目前使用最广泛的关系型数据库操作语言。(95%适用于所有关系型数据库) 【 SQL是关系型数据库通用的操作…

视频会议接入GB28181视频指挥调度,语音对讲方案

传统的视频会议指挥调度系统目前主流的互联网会议大部分都是私有协议,功能都很独立。目前主流的视频监控国标都最GB平台,新的需求要求融合平台要接入监控等设备,并能实现观看监控接入会议,实时语音设备指挥现场工作人员办公实施。…

萤石设备视频接入平台EasyCVR海康私有化视频平台监控硬盘和普通硬盘有何区别?

在现代安防监控领域,对于数据存储和视频处理的需求日益增长,特别是在需要长时间、高稳定性监控的环境中,选择合适的存储设备和监控系统显得尤为重要。本文将深入探讨监控硬盘与普通硬盘的区别,并详细介绍海康私有化视频平台EasyCV…

一学就废|Python基础碎片,字符串编码

Unicode 万国码 在 Python 3 中,字符串由 Unicode 表示,而不是字节。ASCII 码是定义字符数字代码的最著名的标准。数字值最初只定义 128 个字符,因此 ASCII 只包含控制代码、数字、小写字母、大写字母等。然而,我们不足以表示世界…

npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系

文章目录 作用示例常用选项示例命令注意事项 1、实战举例**解决方法**1. **锁定唯一的 types/node 版本**2. **清理依赖并重新安装**3. **设置 tsconfig.json 的 types**4. **验证 Promise 类型支持** **总结** npm list types/node 命令用于列出当前项目中 types/node 包及其…

Qt--命令行终端程序开发

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。 文章目录 前言一、头文件二、cpp文件三、使用流程如图所示 总结 前言 Constant dropping wears the stone. 一、头文件 #ifndef TERMINALWIDGET_H #define TERMINALWIDGET_…

【Linux】常用命令(2.6万字汇总)

文章目录 Linux常用命令汇总1. 基础知识1.1. Linux系统命令行的含义1.2. 命令的组成 2. 基础知识2.1. 关闭系统2.2. 关闭重启2.3. 帮助命令(help)2.4. 命令说明书(man)2.5. 切换用户(su)2.6.历史指令 3.目录…

video2gif容器构建指南

一、介绍 1.项目概述 Video2Gif 项目旨在提供一种便捷的方式,让用户能够将视频中的精彩片段快速转换为 GIF 动画。GIF 动画因其循环播放、文件体积小等特点,在社交媒体、聊天工具中广泛应用,用于表达情感、分享趣事等。 2.核心功能 视频导…

《人工智能网络安全现状(2024)》深度解读:机遇、挑战与应对策略

在当今数字化浪潮汹涌澎湃的时代,人工智能(AI)与网络安全已然深度交融,二者相互作用所塑造的发展态势正深刻重塑着我们的信息安全格局。《人工智能网络安全现状(2024)》这份报告恰似一盏明灯,为…

JVM(二、类加载系统)

类加载器 JVM的类加载通过classLoader及其子类完成的 类加载器&#xff1a; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a; 负责加载存放在 <JAVA_HOME>\lib 目录中的核心类库&#xff0c;如rt.jar、resources.jar等&#xff08;或者被 -Xboot…

九、HttpMessageConverter

文章目录 1. RequestBody2. RequestEntity3. ResponseBody4. SpringMVC处理json5. SpringMVC处理ajax6. RestController注解7. ResponseEntity 1. RequestBody 2. RequestEntity 3. ResponseBody 4. SpringMVC处理json 5. SpringMVC处理ajax 6. RestController注解 7. Response…

PaddleYOLO目标检测训练(集成SwanLab可视化全过程)

PaddleYolo 是飞桨&#xff08;PaddlePaddle&#xff09;框架下的一个目标检测库&#xff0c;主要用于图像和视频中的物体检测。PaddleYOLO包含YOLO系列模型的相关代码&#xff0c;支持YOLOv3、PP-YOLO、PP-YOLOv2、PP-YOLOE、PP-YOLOE、RT-DETR、YOLOX、YOLOv5、YOLOv6、YOLOv…

移动电源测试中最核心的测试项目有哪些?-纳米软件

移动电源在如今的生活中扮演着重要的角色&#xff0c;对其进行准确的测试至关重要。以下是移动电源测试中一些较为核心的测试项目&#xff1a; 一、容量测试 内部电池容量测试&#xff1a;通过设计大量整机及内部电池容量测试实验&#xff0c;可以准确了解移动电源的实际容量…

跟着尚硅谷学vue2—进阶版4.0—Vuex1.0

5. Vuex 1. 理解 Vuex 1. 多组件共享数据-全局事件总线实现 红线是读&#xff0c;绿线是写 2. 多组件共享数据-vuex实现 vuex 不属于任何组件 3. 求和案例-纯vue版 核心代码 1.Count.vue <template><div><h1>当前求和为&#xff1a;{{ sum }}</h1&…