SpringBoot的常用注解的服用方式
1. @SpringBootApplication
1.1 概述
@SpringBootApplication是SpringBoot应用程序的核心注解,通常用于主类上。它包含了以下三个注解:
@Configuration:表示该类是一个配置类,用于定义Spring的配置信息。@EnableAutoConfiguration:表示启用自动配置,SpringBoot会根据项目中的依赖自动配置相应的组件。@ComponentScan:表示启用组件扫描,SpringBoot会自动扫描当前包及其子包下的所有组件。
1.2 使用方法
在主类上添加@SpringBootApplication注解,然后在main方法中调用SpringApplication.run()方法启动应用程序。
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
1.3 注意事项
- 主类应放在根包名下,以便能够扫描到所有的组件,否则会报错。
- 可以使用
exclude用于排除自动配置的类。
2. @RestController
2.1 概述
@RestController是一个组合注解,用于定义RESTful风格的Web服务。它包含了以下两个注解:
@Controller:表示该类是一个控制器类,用于处理HTTP请求。@ResponseBody:表示将方法返回值作为HTTP响应体,而不是视图名称。
2.2 使用方法
在控制器类上添加@RestController注解,然后在方法上添加相应的HTTP请求映射注解,例如:@GetMapping、@PostMapping等。
@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello!";}
}
2.3 注意事项
- 如果需要返回视图名称,可以使用
@Controller注解替换@RestController。 - 如果需要在方法上单独使用
@ResponseBody,可以将@RestController替换为@Controller。
3. @Autowired
3.1 概述
@Autowired用于实现依赖注入。它可以自动装配Bean,默认按类型装配,无需手动创建和管理对象。
3.2 使用方法
在需要注入的字段、构造方法或者Setter方法上添加@Autowired注解。
@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/users")public List<User> getUsers() {return userService.getUsers();}
}
3.3 注意事项
- 如果有多个实现类,可以使用
@Qualifier注解指定Bean的名称。 - 与之类似的还有@Resource也可以实现依赖注入,只是注入的方式不同,根据name属性注入
4. @Component
4.1 概述
@Component用于定义组件。它表示该类是一个Spring管理的Bean,可以被自动扫描和装配。
4.2 使用方法
在类上添加@Component注解,然后在需要注入的地方使用@Autowired注解。
// 定义组件
@Component
public class UserService {public List<User> getUsers() {// ...}
}// 使用组件
@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/users")public List<User> getUsers() {return userService.getUsers();}
}
4.3 注意事项
@Component是一个通用注解,还有一些特定场景的注解,例如:@Repository、@Service、@Controller等,但都是依赖于@Component。- 如果需要自定义Bean的名称,可以在
@Component注解中添加value属性。
5. @Configuration
5.1 概述
@Configuration是Spring的核心注解之一,用于定义配置类。它表示该类是一个Java配置类,可以用来替代XML配置文件。
5.2 使用方法
在类上添加@Configuration注解,然后在方法上添加@Bean注解定义Bean。
@Configuration
public class AppConfig {@Beanpublic UserService userService() {return new UserService();}
}
5.3 注意事项
- 配置类通常与
@ComponentScan、@EnableAutoConfiguration等注解一起使用。 - 如果需要导入其他配置类,可以使用
@Import注解。
6. @Bean
6.1 概述
@Bean是Spring的核心注解之一,用于定义Bean。它表示该方法返回一个Bean,可以被Spring容器管理。
6.2 使用方法
在配置类的方法上添加@Bean注解,然后在需要注入的地方使用@Autowired注解。
@Configuration
public class AppConfig {@Beanpublic UserService userService() {return new UserService();}
}
1234567
6.3 注意事项
- 如果需要自定义Bean的名称,可以在
@Bean注解中添加name属性。 - 如果需要指定Bean的初始化和销毁方法,可以使用
initMethod和destroyMethod属性。
7. @RequestMapping
7.1 概述
@RequestMapping用于定义HTTP请求映射。它可以将HTTP请求映射到控制器类或方法上。
7.2 使用方法
在控制器类或方法上添加@RequestMapping注解,然后设置相应的属性,例如:value、method、produces等。
@RestController
@RequestMapping("/users")
public class UserController {@GetMapping("/{id}")public User getUser(@PathVariable("id") Long id) {// ...}
}
7.3 注意事项
@RequestMapping是一个通用注解,还有一些特定HTTP方法的注解,例如:@GetMapping、@PostMapping、@PutMapping、@DeleteMapping等。- 如果需要处理多个URL,可以在
value属性中使用数组。
8. @PathVariable
8.1 概述
@PathVariable用于获取URL路径中的变量。它可以将URL路径中的变量绑定到方法参数上。
8.2 使用方法
在方法参数上添加@PathVariable注解,然后设置相应的属性,例如:value、required等。
@RestController
@RequestMapping("/users")
public class UserController {@GetMapping("/info/{id}/{name}")public User getUser(@PathVariable("id") Long id, @PathVariable("name") String userName) {// ...}
}
8.3 注意事项
- 如果方法参数名称与URL路径中的变量名称相同,可以省略
value属性。 - 如果允许路径变量不存在,可以将
required属性设置为false。
9. @RequestParam
9.1 概述
@RequestParam是Spring MVC的核心注解之一,用于获取HTTP请求参数。它可以将HTTP请求参数绑定到方法参数上。
9.2 使用方法
在方法参数上添加@RequestParam注解,然后设置相应的属性,例如:value、required、defaultValue等。
@RestController
@RequestMapping("/users")
public class UserController {@GetMapping("/search")public List<User> searchUsers(@RequestParam("keyword") String keyword) {// ...}
}
9.3 注意事项
- 如果方法参数名称与HTTP请求参数名称相同,可以省略
value属性。 - 如果允许请求参数不存在,可以将
required属性设置为false。
10. @Value
10.1 概述
@Value用于获取配置文件中的属性值。它可以将配置文件中的属性值绑定到字段或方法参数上。
10.2 使用方法
在字段或方法参数上添加@Value注解,然后设置相应的属性,例如:${property.name}。
@Component
public class AppConfig {@Value("${app.name}")private String appName;public String getAppName() {return appName;}
}
10.3 注意事项
- 如果需要使用默认值,可以在
@Value注解中使用:分隔符,例如:${property.name:default}。 - 如果需要使用占位符,可以在
@Value注解中使用#{},例如:#{'Hello, ' + property.name}。
11. @ConfigurationProperties
11.1 概述
@ConfigurationProperties该注解可以直接注入整个类的数据,作用于类
11.2 使用方式
配置文件application.yml中添加配置
#模拟的类
student:name: 张三age: 12
定义配置类StudentInfo,prefix="student"的student对应配置文件的student,
@Component
@ConfigurationProperties(prefix="student") // 对应配置文件的student
public class StudentInfo {String name; // 对应配置文件student下的nameString age; // 对应配置文件student下的agepublic String getName() {return name;}public void setName(String name) {this.name = name;} public String getAge() { return age; }public void setAge(String age) { this.age = age; }public void print() {System.out.println("name" + name +"age:" + age);}
}
通过@Autowired使用
@Autowired
private StudentInfo student
/**@student的使用*
@Test
void StudentTest()student.print();
11.3 注意事项
- 类的字段名必须和配置文件的字段名一致
- 必须要有get和set方法才能注入成功
我是Tz 想把我知道的分享给你~~~
相关文章:
SpringBoot的常用注解的服用方式
1. SpringBootApplication 1.1 概述 SpringBootApplication是SpringBoot应用程序的核心注解,通常用于主类上。它包含了以下三个注解: Configuration:表示该类是一个配置类,用于定义Spring的配置信息。EnableAutoConfiguration&…...
[课程][原创]CMakeLists编写实战linux版
课程地址:https://edu.csdn.net/course/detail/38887 课程介绍课程目录讨论留言 你将收获 学会如何编写CMakeLIsts 学会如何调试自己cmake项目 学会如何引用头文件和库 学会如何调用开源库 适用人群 对CMakeLists感兴趣的入门学者 课程介绍 CMake是一个跨…...
静态路由下一跳地址怎么确定(静态路由配置及讲解)
一、用到的所有命令及功能 ①ip route-static 到达网络地址 子网掩码 下一跳 // 配置静态路由下一跳指的是和当前网络直接连接的路由器的接口地址非直连网段必须全部做路由路径是手工指定的,在大规模网络上不能用,效率低,路径是固定的稳定的…...
SPSS‖参数与非参数检验对比课程中的 配对样本T检验
特点:在配对样本T检验中,强调被试一定要同质(同一样本,不同变量环境),其目的就为了消除目的是额外变量的影响,更能反映自变量和因变量之间的关系。 •配对样本t检验的过程,是对两个…...
AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行
当前,以“ChatGPT”为代表的大模型正在引领新一轮全球人工智能技术发展浪潮,推动人工智能从以专用小模型定制训练为主的“手工作坊时代”,迈入以通用大模型预训练为主的“工业化时代”,正不断加速实体经济智能化升级,深…...
JVM、Redis、反射
JVM JVM是Java virtual machine(Java虚拟机)的缩写,是一种用于计算机的规范,是通过在实际计算机上仿真模拟各种计算机功能来实现的。 主要组件构成: 1.类加载器 子系统负责从文件系统或者网络中加载Class文件&…...
【Spring练习项目】博客系统
目录 1.项目展示2.项目结构设计3.项目功能设计4 数据库准备4.1 建表4.2 DB相关数据 5.项目模块6.添加项目公共模块6.1 common6.2 实现前端界面 7.功能实现7.1实现博客列表约定前后端交互接口实现服务器代码实现客户端代码 7.2实现博客详情约定前后端交互接口实现服务器代码实现…...
神策新一代分析引擎架构演进
近日,神策数据已经推出全新的神策分析 2.5 版本,该版本支持分析模型与外部数据的融合性接入,构建全域数据融合模型,实现从用户到经营的全链路、全场景分析。新版本的神策分析能够为企业提供更全面、更有效的市场信息和经营策略&am…...
Systemui的介绍以及与普通应用的差异
一.SystemUI的介绍 简介 SystemUI是Android操作系统的一个关键组件,主要负责管理和提供用户界面的核心元素,如状态栏、导航栏和锁屏界面等。从下面两点出发了解SystemUI的特性: 一下就是systemui的部分界面,还包括锁屏界面&…...
群狼调研—产业园物业满意度的调研对象
群狼调研**(湖南物业满意度调查)**受顾客委托开展产业园物业满意度调查,产业园物业满意度调研对象:产业园物业满意度调研的对象主要是产业园内的企业和租户。这包括在产业园内租用场地或办公空间的企业、工厂、工作室等࿰…...
想参加华为杯竞赛、高教社杯和数学建模国赛的小伙伴看过来
本文目录 ⭐ 赛事介绍⭐ 辅导比赛 ⭐ 赛事介绍 ⭐ 参赛好处 ⭐ 辅导比赛 ⭐ 写在最后 ⭐ 赛事介绍 华为杯全国研究生数学建模竞赛是由华为公司主办的一项面向全国研究生的数学建模竞赛。该竞赛旨在通过实际问题的建模和解决,培养研究生的创新能力和团队合作精神&a…...
ELK 企业级日志分析系统
目录 ELK 概述 1、ELK 简介 2、为什么要使用 ELK: 3、完整日志系统基本特征 4、ELK 的工作原理: 总结 ELK Elasticsearch 集群部署(在Node1、Node2节点上操作) 1.环境准备 2.部署 Elasticsearch …...
PyTorch Lightning教程六:优化代码
有时候模型训练很慢,代码写得冗长之后,没法诶个检查到底那块出现了占用了时空间,本节通过利用Lightning的一些方法,检查分析是那块代码出现了问题,从而来进一步指导和优化代码 本节主要基于性能分析方法,通…...
基于linux下的高并发服务器开发(第四章)- 多线程实现并发服务器
>>了解文件描述符 文件描述符分为两类,一类是用于监听的,一类是用于通信的,在服务器端既有监听的,又有通信的。而且在服务器端只有一个用于监听的文件描述符,用于通信的文件描述符是有n个。和多少个客户端建立了…...
YUV 色彩空间中U 和 V 分量的范围
在YUV色彩空间中,U分量和V分量的范围通常是-0.5到0.5。 具体来说,对于标准的YUV色彩空间(例如YUV420),取样是按照4:2:0的比例进行的。这意味着在水平和垂直方向上,U和V分量的取样比Y分量少一半。因此&…...
【云原生】K8S二进制搭建一
目录 一、环境部署1.1操作系统初始化 二、部署etcd集群2.1 准备签发证书环境在 master01 节点上操作在 node01与02 节点上操作 三、部署docker引擎四、部署 Master 组件4.1在 master01 节点上操 五、部署Worker Node组件 一、环境部署 集群IP组件k8s集群master01192.168.243.1…...
自动化应用杂志自动化应用杂志社自动化应用编辑部2023年第11期目录
数据处理与人工智能 大数据视域下无轨设备全生命周期健康管理技术的研究 赖凡; 1-3 三维激光扫描结合无人机倾斜摄影在街区改造测绘中的技术应用 张睿; 4-6 井上变电站巡检机器人的设计与应用 刘芳; 7-9 《自动化应用》投稿邮箱:cnqikantg126.com 基于机…...
Tensorflow2-初识
TensorFlow2是一个深度学习框架,可以理解为一个工具,有谷歌的全力支持,具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。 1、环境的搭建 1.1 Anaconda3的安装 https://www.anaconda.com/ Python全家桶,包括Python环境和…...
idea-常用插件汇总
idea-常用插件汇总 码云插件 这个插件是码云提供的ps-码云是国内的一款类似github的代码托管工具。 Lombok Lombok是一个通用Java类库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或setter等方法…...
【Kubernetes】
目录 一、Kubernetes 概述1、K8S 是什么?2、为什么要用 K8S?3、Kubernetes 集群架构与组件 二、核心组件1、Master 组件2、Node 组件3、K8S创建Pod的工作流程?(重点)4、K8S资源对象(重点)5、Kubernetes 核…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
