当前位置: 首页 > news >正文

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的初始化和销毁方法,可以使用initMethoddestroyMethod属性。

7. @RequestMapping

7.1 概述

@RequestMapping用于定义HTTP请求映射。它可以将HTTP请求映射到控制器类或方法上。

7.2 使用方法

在控制器类或方法上添加@RequestMapping注解,然后设置相应的属性,例如:valuemethodproduces等。

@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注解,然后设置相应的属性,例如:valuerequired等。

@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注解,然后设置相应的属性,例如:valuerequireddefaultValue等。

@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

定义配置类StudentInfoprefix="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应用程序的核心注解&#xff0c;通常用于主类上。它包含了以下三个注解&#xff1a; Configuration&#xff1a;表示该类是一个配置类&#xff0c;用于定义Spring的配置信息。EnableAutoConfiguration&…...

[课程][原创]CMakeLists编写实战linux版

课程地址&#xff1a;https://edu.csdn.net/course/detail/38887 课程介绍课程目录讨论留言 你将收获 学会如何编写CMakeLIsts 学会如何调试自己cmake项目 学会如何引用头文件和库 学会如何调用开源库 适用人群 对CMakeLists感兴趣的入门学者 课程介绍 CMake是一个跨…...

静态路由下一跳地址怎么确定(静态路由配置及讲解)

一、用到的所有命令及功能 ①ip route-static 到达网络地址 子网掩码 下一跳 // 配置静态路由下一跳指的是和当前网络直接连接的路由器的接口地址非直连网段必须全部做路由路径是手工指定的&#xff0c;在大规模网络上不能用&#xff0c;效率低&#xff0c;路径是固定的稳定的…...

SPSS‖参数与非参数检验对比课程中的 配对样本T检验

特点&#xff1a;在配对样本T检验中&#xff0c;强调被试一定要同质&#xff08;同一样本&#xff0c;不同变量环境&#xff09;&#xff0c;其目的就为了消除目的是额外变量的影响&#xff0c;更能反映自变量和因变量之间的关系。 •配对样本t检验的过程&#xff0c;是对两个…...

AI赋能转型升级 助力打造“数智辽宁”——首次大模型研讨沙龙在沈成功举行

当前&#xff0c;以“ChatGPT”为代表的大模型正在引领新一轮全球人工智能技术发展浪潮&#xff0c;推动人工智能从以专用小模型定制训练为主的“手工作坊时代”&#xff0c;迈入以通用大模型预训练为主的“工业化时代”&#xff0c;正不断加速实体经济智能化升级&#xff0c;深…...

JVM、Redis、反射

JVM JVM是Java virtual machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一种用于计算机的规范&#xff0c;是通过在实际计算机上仿真模拟各种计算机功能来实现的。 主要组件构成&#xff1a; 1.类加载器 子系统负责从文件系统或者网络中加载Class文件&…...

【Spring练习项目】博客系统

目录 1.项目展示2.项目结构设计3.项目功能设计4 数据库准备4.1 建表4.2 DB相关数据 5.项目模块6.添加项目公共模块6.1 common6.2 实现前端界面 7.功能实现7.1实现博客列表约定前后端交互接口实现服务器代码实现客户端代码 7.2实现博客详情约定前后端交互接口实现服务器代码实现…...

神策新一代分析引擎架构演进

近日&#xff0c;神策数据已经推出全新的神策分析 2.5 版本&#xff0c;该版本支持分析模型与外部数据的融合性接入&#xff0c;构建全域数据融合模型&#xff0c;实现从用户到经营的全链路、全场景分析。新版本的神策分析能够为企业提供更全面、更有效的市场信息和经营策略&am…...

Systemui的介绍以及与普通应用的差异

一.SystemUI的介绍 简介 SystemUI是Android操作系统的一个关键组件&#xff0c;主要负责管理和提供用户界面的核心元素&#xff0c;如状态栏、导航栏和锁屏界面等。从下面两点出发了解SystemUI的特性&#xff1a; 一下就是systemui的部分界面&#xff0c;还包括锁屏界面&…...

群狼调研—产业园物业满意度的调研对象

群狼调研**&#xff08;湖南物业满意度调查&#xff09;**受顾客委托开展产业园物业满意度调查&#xff0c;产业园物业满意度调研对象&#xff1a;产业园物业满意度调研的对象主要是产业园内的企业和租户。这包括在产业园内租用场地或办公空间的企业、工厂、工作室等&#xff0…...

想参加华为杯竞赛、高教社杯和数学建模国赛的小伙伴看过来

本文目录 ⭐ 赛事介绍⭐ 辅导比赛 ⭐ 赛事介绍 ⭐ 参赛好处 ⭐ 辅导比赛 ⭐ 写在最后 ⭐ 赛事介绍 华为杯全国研究生数学建模竞赛是由华为公司主办的一项面向全国研究生的数学建模竞赛。该竞赛旨在通过实际问题的建模和解决&#xff0c;培养研究生的创新能力和团队合作精神&a…...

ELK 企业级日志分析系统

目录 ELK 概述 1、ELK 简介 2、为什么要使用 ELK&#xff1a; 3、完整日志系统基本特征 4、ELK 的工作原理&#xff1a; 总结 ELK Elasticsearch 集群部署&#xff08;在Node1、Node2节点上操作&#xff09; 1&#xff0e;环境准备 2&#xff0e;部署 Elasticsearch …...

PyTorch Lightning教程六:优化代码

有时候模型训练很慢&#xff0c;代码写得冗长之后&#xff0c;没法诶个检查到底那块出现了占用了时空间&#xff0c;本节通过利用Lightning的一些方法&#xff0c;检查分析是那块代码出现了问题&#xff0c;从而来进一步指导和优化代码 本节主要基于性能分析方法&#xff0c;通…...

基于linux下的高并发服务器开发(第四章)- 多线程实现并发服务器

>>了解文件描述符 文件描述符分为两类&#xff0c;一类是用于监听的&#xff0c;一类是用于通信的&#xff0c;在服务器端既有监听的&#xff0c;又有通信的。而且在服务器端只有一个用于监听的文件描述符&#xff0c;用于通信的文件描述符是有n个。和多少个客户端建立了…...

YUV 色彩空间中U 和 V 分量的范围

在YUV色彩空间中&#xff0c;U分量和V分量的范围通常是-0.5到0.5。 具体来说&#xff0c;对于标准的YUV色彩空间&#xff08;例如YUV420&#xff09;&#xff0c;取样是按照4:2:0的比例进行的。这意味着在水平和垂直方向上&#xff0c;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 《自动化应用》投稿邮箱&#xff1a;cnqikantg126.com 基于机…...

Tensorflow2-初识

TensorFlow2是一个深度学习框架&#xff0c;可以理解为一个工具&#xff0c;有谷歌的全力支持&#xff0c;具有易用、灵活、可扩展、性能优越、良好的社区资源等优点。 1、环境的搭建 1.1 Anaconda3的安装 https://www.anaconda.com/ Python全家桶&#xff0c;包括Python环境和…...

idea-常用插件汇总

idea-常用插件汇总 码云插件 这个插件是码云提供的ps-码云是国内的一款类似github的代码托管工具。 Lombok Lombok是一个通用Java类库&#xff0c;能自动插入编辑器并构建工具&#xff0c;简化Java开发。通过添加注解的方式&#xff0c;不需要为类编写getter或setter等方法…...

【Kubernetes】

目录 一、Kubernetes 概述1、K8S 是什么&#xff1f;2、为什么要用 K8S?3、Kubernetes 集群架构与组件 二、核心组件1、Master 组件2、Node 组件3、K8S创建Pod的工作流程&#xff1f;&#xff08;重点&#xff09;4、K8S资源对象&#xff08;重点&#xff09;5、Kubernetes 核…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...