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 中常用的注解总结。这些注解可以大大提高开发效率,使代码更加简洁和易于维护。在实际开发中,可以根据具体需求选择合适的注解来实现功能。
相关文章:
Spring Spring Boot 常用注解总结
在 Java 开发中,Spring 和 Spring Boot 框架广泛应用于企业级应用开发。这两个框架提供了丰富的注解,使得开发更加高效和便捷。本文将对 Spring 和 Spring Boot 中常用的注解进行总结。 一、Spring 常用注解 1. Component 作用:用于将普通的…...
Flink独立集群+Flink整合yarn
Flink独立集群的搭建: 1、上传解压配置环境变量 # 1、解压 tar -xvf flink-1.15.4-bin-scala_2.12.tgz # 2、修改环境变量 export FLINK_HOME/usr/local/soft/flink-1.15.4 export PATH$PATH:$FLINK_HOME/bin 2、修改配置文件 cd /usr/local/soft/flink-1.15.4/…...
动态规划 之 简单多状态 dp 问题 算法专题
一. 按摩师 按摩师 状态表示 根据经验 题目要求 dp[i] 表示: 选择到i位置时, 此时的最长预约时长 但是根据题目又分成两种情况: f[i] : 选择到 i 位置的时候, nums[i] 必选, 此时的最长预约时长 g[i] : 选择到 i 位置的时候, nums[i] 不选, 此时的最长预约时长状态转移方程 …...
qt QPixmapCache详解
1、概述 QPixmapCache是Qt框架中提供的一个功能强大的图像缓存管理工具类。它允许开发者在全局范围内缓存QPixmap对象,从而有效减少图像的重复加载,提高图像加载和显示的效率。这对于需要频繁加载和显示图像的用户界面应用来说尤为重要,能够…...
Redis中的持久化
什么是 Redis 持久化? Redis 是一个内存数据库,也就是说它主要把数据存储在内存中,这样可以实现非常高的读写速度。通常,内存数据库是非常快速且高效的,但它也有一个很大的问题:数据丢失的风险。因为当 Red…...
Unity 如何优雅的限定文本长度, 包含对特殊字符,汉字,数字的处理。实际的案例包括 用户昵称
常规限定文本长度 ( 通过 UntiyEngine.UI.Inputfiled 附带的长度限定 ) 痛点1 无法对中文,数字,英文进行识别,同样数量的汉字和同样数量的英文像素长度是不一样的,当我们限定固定长度后,在界面上的排版不够美观 痛点2…...
SMO+PLL滑膜观测器、MARS模型参考自适应观测器simulink仿真
模型内容介绍: (1)SMOPLL滑膜观测器通过SMO估计电机的转速和位置信息,并利用PLL技术对这些信息进行跟踪和校正,以实现高精度的电机控制; (2)MARS是一种基于模型参考自适应控制理论…...
例题解析:利用异或运算(XOR)找出单独的数
异或运算(XOR) 异或运算是一种位运算,通常用符号 ^ 表示。它的运算规则如下: 如果两个二进制位相同,结果为 0。如果两个二进制位不同,结果为 1。 具体来说,对于两个二进制位 a 和 bÿ…...
如何处理微信小程序大量未捕获的异常
1)如何处理微信小程序大量未捕获的异常 2)如何关闭代码创建的纹理的读写,或者创建不带读写的图片 3)回收带有贴图和Collider的Mesh,如何正确用对象池维护 4)Cloth组件使用在一个篮筐上,运行后篮…...
C#-StringBuilder
string:特殊的引用 每次重新赋值或者拼接时会分配新的内存空间,如果一个字符串经常改变会非常浪费空间。 StringBuilder:C#提供的一个用于处理字符串的公共类 修改字符串而不创建新的对象,需要频繁修改和拼接的字符串可以使用它…...
SQLI LABS | Less-39 GET-Stacked Query Injection-Intiger Based
关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-39/ 本关是堆…...
linux安装zookeeper和kafka集群
linux安装zookeeper和kafka集群 一、Zookeeper集群部署安装zookeeper1. 下载2. 上传, 解压3. 配置 Zookeeper 节点4. 创建 myid 文件5. 启动参数更改6. sh文件授权7. 启动集群8. 防火墙开启端口 验证集群 二、kafka集群安装安装Kafka1. 下载Kafka安装包2. 上传到服务器…...
洞悉 Linux 系统运行细节,使用 atop 监测和回看系统负载状态
Linux系统的资源使用情况,你可以通过使用命令如free、top和netstat来实时监控内存、CPU及端口的使用状态。对于需要追踪历史资源消耗动态的场景,atop命令则能有效帮助用户查看过去的系统负载情况。 本篇教程的灵感源自一位小伙伴的真实经历:…...
“双十一”电商狂欢进行时,在AI的加持下看网易云信IM、RTC如何助力商家!
作为一年一度的消费盛会,2024年“双十一”购物狂欢节早已拉开帷幕。蹲守直播间、在主播热情介绍中点开链接并加购,也已成为大多数人打开“双11”的重要方式。然而,在这火热的购物氛围背后,主播频频“翻车”、优质主播稀缺、客服响…...
Python调用企业微信的扫一扫
在企业微信里面新建了一个应用,指向了搭建服务器上Django写的web应用。 web应用需要使用扫描二维码的功能,就使用了大家都评价效果好的微信的扫一扫,事实也证明微信的扫一扫很好,但实现这个功能还是花了自己不少时间,很…...
速盾:CDN和OBS能共用流量包吗?
CDN和OBS是两种不同的云服务,它们在内容分发和存储方面有着不同的功能和优势。虽然它们都可以用于提供高效的内容分发和存储服务,但是它们的流量包是不能共用的。 CDN,即内容分发网络,是一种通过将内容存储在全球分布的服务器上&…...
第8章 利用CSS制作导航菜单
8.1 水平顶部导航栏 水平莱单导航栏是网站设计中应用范围最广的导航设计,一般放置在页面的顶部。水平 导航适用性强,几乎所有类型的网站都可以使用,设计难度较低。 如果导航过于普通,无法容纳复杂的信息结构,就需要在…...
C# 集合与泛型
文章目录 前言1.什么是集合?2.非泛型集合(了解即可)2.1常见的非泛型集合 3.泛型的概念4.常用的泛型集合4.1 List < T > <T> <T>4.2 Dictionary<TKey, TValue>4.3 Queue < T > <T> <T>4.4 S t a c…...
el-date-picker 设置开始时间和结束时间
<el-date-picker v-model"ruleForm.RECORDDATE" type"date" placeholder"日期" format"YYYY/M/D" value-format"YYYY/M/D" style"width: 100%;" :disabled-date"publishDateAfter" > </el-dat…...
【Docker】 常用命令
文章目录 介绍Docker和容器化技术什么是Docker?Docker的优势和应用场景Docker的应用场景包括但不限于: 安装和配置Docker安装Docker引擎配置Docker环境 Docker镜像命令搜索镜像拉取镜像查看本地镜像删除本地镜像 Docker容器命令创建容器启动容器停止容器…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
