Spring:Spring Boot常用注解大全

  Spring Boot是一个由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。以下是对Spring Boot的详细介绍:

一、发展沿革
  2013年,Pivotal团队开始研发Spring Boot。
  2014年4月,发布了全新开源的轻量级框架的第一个Spring Boot版本。

二、主要特点
  1. 独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行,只需通过命令“java -jar xx.jar”即可运行。

  2. 内嵌Servlet容器:Spring Boot使用嵌入式的Servlet容器(例如Tomcat、Jetty或者Undertow等),应用无需打成WAR包。

  3. 提供starter简化Maven配置:Spring Boot提供了一系列的“starter”项目对象模型(POMs)来简化Maven配置。

  4. 自带应用监控:Spring Boot可以对正在运行的项目提供监控。

  5. 无代码生成和xml配置:Spring Boot不需要任何xml配置即可实现Spring的所有配置。

三、作用与价值
  1. 创建独立的Spring应用程序:Spring Boot使创建独立的、可运行的、基于Spring的生产级应用程序变得容易。

  2. 简化配置和部署:通过内嵌Servlet容器和简化的Maven配置,大大简化了应用程序的配置和部署过程。

  3. 提供生产就绪型功能:如指标监控、健康检查和外部配置等,使应用程序更容易地适应生产环境。

本文将对Spring Boot常用的一些注解进行讲解,欢迎大家关注与收藏。

Spring Boot注解大全可以归纳为以下几类:

1. 启动注解
  @SpringBootApplication:这是一个组合注解,通常用于主应用程序类,标志着这是Spring Boot应用程序的入口点。它包含了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。

package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

2. 配置注解
①. @SpringBootConfiguration:继承自@Configuration注解,主要用于加载配置文件。

②. @EnableAutoConfiguration:开启自动配置功能,允许Spring Boot根据当前类路径下的包或者类来自动配置Bean。

③. @ComponentScan:主要用于组件扫描和自动装配,即自动扫描包路径下的@Component注解进行注册Bean实例到Context中。

3. Controller相关注解
①. @Controller:用于定义Controller类。

②. @RestController:复合注解,包含@Controller和@ResponseBody,用于创建RESTful Web服务。

③. @RequestMapping:用于定义请求URL到Controller方法的映射。

④. @GetMapping:用于将HTTP GET请求映射到特定处理程序的方法注解。

⑤. @PostMapping:用于将HTTP POST请求映射到特定处理程序的方法注解。

⑥. @RequestBody:用于读取请求体中的数据并绑定到方法参数上。

@RestController
@RequestMapping("test")
@Slf4j
public class TestController {}

3. 取请求参数值注解
①. @PathVariable:用于获取URL中的参数值。

RequestMapping(“user/get/mac/{macAddress})
public String getByMacAddress(@PathVariable String macAddress){//do something;
}

②. @RequestParam:用于获取查询参数值。

 @PostMapping("/test")public String getOrgList(@RequestParam(value = "page") String page,@RequestParam(value = "pageSize", required = false) String pageSize,@RequestParam(value = "keyParam", required = false) String keyParam,) {}

4. Bean相关注解
①. @Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

②. @Service:用于标注业务层组件。

③. @Repository:用于标注数据访问组件,即DAO组件。

④. @Autowired:默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。

⑤. @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常。

⑥. @Profile:指定Bean在哪个环境下被激活。

⑦. @DependsOn:依赖的Bean注册完成后,才注册当前类,依赖Bean不存在会报错,用于控制Bean加载顺序。

⑧. @PostConstruct:在Bean的属性都注入完毕后,执行注解标注的方法进行初始化工作。

    @Bean@DependsOn({ "slaveDatasource", "testDatasource"})@Primarypublic DynamicDataSource datasource(DataSource slaveDatasource,DataSource imDatasource) {Map<Object, Object> targetDataSources = new HashMap<>();targetDataSources.put(Databasetype.SLAVE.value, slaveDatasource);targetDataSources.put(Databasetype.TEST.value, imDatasource);DynamicDataSource dataSource = new DynamicDataSource();dataSource.setTargetDataSources(targetDataSources);dataSource.setDefaultTargetDataSource(slaveDatasource);return dataSource;}

5. 全局异常处理

1.@ControllerAdvice:包含@Component。可以被扫描到。统一处理异常。

2.@ExceptionHandler(Exception.class):用在方法上面表示遇到这个异常就执行以下方法。

    @ExceptionHandler(value = Exception.class)public String exception(HttpServletRequest req, HttpServletResponse resp, Exception e, Model model) {// 处理逻辑}

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

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

相关文章

各渠道应用推广点击上报文档地址

小米点击上报&#xff1a;https://api.e.mi.com/doc.html#/1.0.0-mdtag9b26f-omd/document-2bd1c4c260259b072818205a8ae20139 荣耀点击上报&#xff1a;https://ads.honor.com/help/1738095811504373761

python print用

Python中的print()函数是最常用的一个内置函数&#xff0c;用来向标准输出设备&#xff08;通常是屏幕&#xff09;发送文本或其他类型的对象。从Python初学者到高级开发人员&#xff0c;print()函数是编写程序时不可或缺的一个工具。本文旨在深入探讨print()函数的不同用法和技…

[每周一更]-(第96期):Rsync 用法教程:高效同步文件与目录

文章目录 一、引言二、rsync 基本概念三、介绍rsync 是什么&#xff1f;四、安装五、rsync 基本语法常见示例&#xff08;默认ssh协议&#xff09;&#xff1a; 六、常用选项1. -a 或 --archive2. -v 或 --verbose3. -z 或 --compress4. --delete5. --exclude6. --exclude-from…

vue项目中vue.config.js中配置webpack详解

前言&#xff1a; vue-cli3以前的版本中把webpack的配置都写在config文件中&#xff0c;可以vue-cli3以上的版本中没有了config目录&#xff0c;可以将配置webpack的文件写在vue.config.js文件里面。 vue.config.js 是一个可选的配置文件&#xff0c;如果项目的 (和 package.…

hadoop yarm你知道吗?

一、概念 Hadoop YARN&#xff08;Yet Another Resource Negotiator&#xff09;是Hadoop 2.x版本中的一个重要组件&#xff0c;用于资源管理和作业调度。它是Hadoop的第二代资源管理器&#xff0c;取代了Hadoop 1.x版本中的MapReduce作业调度器。 通俗地理解它的作用有点像一…

如何通过外网访问内网服务器?

随着网络的普及和各行各业对互联网的应用需求增加&#xff0c;通过外网访问内网服务器的需求也越来越多。在传统的网络环境下&#xff0c;要实现外网访问内网服务器需要进行繁琐的端口映射设置&#xff0c;而且还会受到网络环境限制和数据安全问题的困扰。现在有了一种名为【天…

Springboot整合 Spring Cloud Alibaba Sentinel

1.Sentinel介绍 官方文档地址&#xff1a; https://sentinelguard.io/zh-cn/docs/introduction.html https://github.com/alibaba/Sentinel/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入…

定制聚四氟乙烯大圆桶50L

PTFE聚四氟乙烯圆桶是高性能化学实验器皿&#xff0c;适用于强酸强碱环境。具有化学稳定性、耐高温、良好密封、易清洗、环保安全等特点。 常规四氟桶-超大规格四氟桶均可定制&#xff0c;一体成型&#xff0c;保证密封&#xff0c;可长期保存高纯试剂。 产品特性 1.超纯实验…

Elastic 基于 RAG 的 AI 助手:利用 LLM 和私有 GitHub 问题分析应用程序问题

作者&#xff1a;来自 Elastic Bahubali Shetti 作为 SRE&#xff0c;分析应用程序比以往更加复杂。 你不仅必须确保应用程序以最佳状态运行以确保良好的客户体验&#xff0c;而且还必须了解某些情况下的内部工作原理以帮助排除故障。 分析基于生产的服务中的问题是一项团队运动…

python项目中exec路径处理

理解Python中的exec()函数及其参数 在Python编程中&#xff0c;exec()函数是一个强大的工具&#xff0c;它允许动态地执行存储在字符串或代码对象中的Python代码。然而&#xff0c;由于其能力强大&#xff0c;exec()的使用也需要谨慎&#xff0c;以避免潜在的安全风险。本文将…

C#:输出任意一个数的逆序数

任务描述 本关任务&#xff1a;从键盘输入一个整数&#xff0c;输出该数的逆序数。如369的逆序数是963,478的逆序数是874 编程要求 根据提示&#xff0c;在右侧编辑器补充代码&#xff0c;计算并输出一个数的逆序数。 测试说明 平台会对你编写的代码进行测试&#xff1a; 测…

回炉重造java----多线程

概念 注&#xff1a; main方法其实也是一个线程。在java中所以的线程都是同时启动的&#xff0c;至于什么时候&#xff0c;哪个先执行&#xff0c;完全看谁先得到CPU的资源。在java中&#xff0c;每次程序运行至少启动2个线程。一个是main线程&#xff0c;一个是垃圾收集(gc )线…

【Ubuntu】apt命令安装最新版本Nginx

目录 环境前言添加Nginx仓库步骤1、仓库公钥2、文本公钥转二进制GPG公钥&#xff08;可选&#xff09;3、添加apt软件源4、安装新版Nginx 参阅 环境 Ubuntu 22.04 前言 ubuntu官方apt软件仓库&#xff08;或者叫软件源&#xff09;的软件版本可能会比较旧&#xff0c;导致无…

AI算法-高数5-线性代数1-基本概念、向量

线性代数&#xff1a;主要研究1、张量>CV计算机视觉 2、研究张量的线性关系。 深度学习的表现之所以能够超过传统的机器学习算法离不开神经网络&#xff0c;然而神经网络最基本的数据结构就是向量和矩阵&#xff0c;神经网络的输入是向量&#xff0c;然后通过每个矩阵对向量…

使用 Flask Blueprint 实现模块化 Web 应用

文章目录 1. 什么是 Flask Blueprint&#xff1f;2. 为什么要使用 Flask Blueprint&#xff1f;3. 如何使用 Flask Blueprint&#xff1f;4. 在 Blueprint 之间进行通信5. 结合 Flask 插件系统进行功能拓展结语 当构建大型 Flask Web 应用时&#xff0c;保持代码的组织结构清晰…

遨游 JavaScript 对象星际:探索面向对象编程的深邃世界

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;面向对象编程&#x1f517;1 什么是对象&#x1f517;2 什么是…

免费SSL证书申请安装通用指南

JoySSL官网 注册码230918 关于SSL证书的申请与安装&#xff0c;以下是一个概括性的技术性指南&#xff0c;适合那些希望详细了解该过程的技术人员或网站管理员。请注意&#xff0c;具体步骤可能会根据证书颁发机构(CA)和服务提供商的不同而有所变化。 一、选择SSL证书类型与颁…

Lua 基础 01 入门

Lua 基础相关知识 第一期 注释 -- 单行注释--[[多行注释 --]]-- 多加一个横杠符号就能重新启用注释内的代码 ---[[print("Lua") --]]数据类型 Lua 是动态类型语言&#xff0c;变量不需要类型定义&#xff0c;只需要为变量赋值。 Lua 有 8 种基本类型&#xff1a…

Postman工具介绍与安装

一、Postman介绍 Postman 乃是一款对 HTTP 协议予以支持的接口调试及测试工具&#xff0c;其突出特性在于功能强大&#xff0c;并且使用简便、易用性良好。不管是开发人员开展接口调试工作&#xff0c;还是测试人员进行接口测试任务&#xff0c;Postman 均属于首选工具之一。 接…

使用Python递归重命名文件和文件夹

使用 Python 递归重命名文件和文件夹可以通过 os 模块和 os.path 模块来完成。下面是一个示例代码&#xff0c;演示如何递归地重命名文件和文件夹&#xff1a; 1、问题背景 在研究大型数字档案时&#xff0c;需要将这些档案复制到本地存储进行保存。这些档案通常存储在 USB 驱…