Spring常用注解和组件

引言

了解Spring常用注解的使用方式可以帮助我们更快速理解这个框架和其中的深度

注解

@Configuration:表示该类是一个配置类,用于定义 Spring Bean。

@EnableAutoConfiguration:启用 Spring Boot 的自动配置功能,让 Spring Boot 根据类路径中的依赖自动配置应用。

@ComponentScan:启用组件扫描,Spring Boot 会扫描该类所在包及其子包下的组件,并将它们注册为 Spring Bean。

@SpringBootApplication :这个注解包含上面三个注解

@ImportResource:从一个基于 XML 配置的旧 Spring 项目迁移到基于 Java 注解的配置时,可能不想一下子把所有的 XML 配置都转换为 Java 注解配置,这时就可以使用 @ImportResource 逐步引入现有的 XML 配置文件。

组件

创建一个 SpringApplication 实例,然后调用 run 方法启动应用。run 方法接受一个 String[] 类型的参数,通常是 main 方法的 args 参数,用于传递命令行参数。   

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {// 创建 SpringApplication 实例SpringApplication app = new SpringApplication(Application.class);// 启动应用app.run(args);}
}

以上文Spring启动类我们来分析一下Spring的组件

1. SpringApplication 类

SpringApplication 类是 Spring Boot 框架的核心启动类,它封装了启动 Spring 应用所需的一系列操作

  • 自动配置:根据类路径中的依赖和应用的配置,自动配置 Spring 应用的各种组件,如数据源、消息队列等。
  • 组件扫描:扫描指定包及其子包下带有特定注解(如 @Component、@Service、@Repository 等)的类,并将它们注册为 Spring Bean。
  • 启动嵌入式服务器:如果应用是一个 Web 应用,SpringApplication 会自动启动嵌入式服务器(如 Tomcat、Jetty 等)。

2. Application.class 参数

Application.class 通常是 Spring Boot 应用的主类,这个类一般带有 @SpringBootApplication 注解,该注解是一个组合注解,包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 注解

     

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

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

相关文章

Lombok使用指南

引言 lombok作为减少我们代码量的利器,本文将列举常用的几个注解,来帮助减少代码量 注解及其功能 Getter 和 Setter import lombok.Getter; import lombok.Setter;Getter Setter public class Person {private String name;private int age; } …

JAVA学习第一天

String的构造方法-118 String创建对象的特点——119 String字符串的比较——120 字符串的遍历——122 两个函数:length(),charAt() StringBuilder——127 String的内容是不可变的 StringBuilder的内容是可变…

sqli-lab靶场学习(六)——Less18-22(User-Agent、Referer、Cookie注入)

前言 前面的关卡,都是直接在输入框或者浏览器的地址栏上做文章即可。但本文这几关,需要用工具拦截请求修改请求头部才行。 Less18(User-Agent注入) 本关的注入点在User-Agent。我们在用户名和密码框中输入admin/admin后&#xf…

Spring依赖注入方式

写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…

arcgis界址点编号工具开发原理(西北角顺时针)

arcgis界址点编号工具开发原理(西北角顺时针) 1、工具实现思路。寻找离包络矩形左顶角最近的点作为起点。如下图:距离包络矩形左顶角最近的点,作为J1点没有任何问题。 问题在于并不是所有的地块,都这么中规中矩、合情…

分布式服务框架 如何设计一个更合理的协议

1、概述 前面我们聊了如何设计一款分布式服务框架的问题,并且编码实现了一个简单的分布式服务框架 cheese, 目前 cheese 基本具备分布式服务框架的基本功能。后面我们又引入了缓存机制,以及使用Socket替代了最开始的 RestTemplate。并且还学习了网络相关…

生信云服务器:让生物信息学分析更高效、更简单【附带西柚云优惠码】

随着生物信息学的快速发展,基因组测序、单细胞分析等复杂任务逐渐成为研究者们的日常工作。然而,个人电脑在处理这些任务时往往面临性能瓶颈,如内存不足、运算速度慢等问题,导致分析任务频繁失败或崩溃。为了解决这一难题&#xf…

[AUTOSAR通信] - PDUR模块解读

点击订阅专栏不迷路 文章目录 一、 PDUR模块概述二、功能描述2.1 发送路由功能2.2 接收路由功能2.3 网关路由功能2.4 路由控制功能 三、配置項介紹3.1. PduRBswModules3.2. PduRGeneral3.3. PduRRoutingTables3.4. PduRRoutingPath3.5. PduRSrcPdu3.6. PduRDestPdu 四、总结 &g…

分治下的快速排序(典型算法思想)—— OJ例题算法解析思路

目录 一、75. 颜色分类 - 力扣(LeetCode) 运行代码: 一、算法核心思想 二、指针语义与分区逻辑 三、操作流程详解 四、数学正确性证明 五、实例推演(数组[2,0,2,1,1,0]) 六、工程实践优势 七、对比传统实现 八、潜在问题与解决方案 九、性能测试数据 十、扩展…

分层耦合 - IOC详解

推荐使用下面三种, 第一种多用于其他类 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。 使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用…

PDF Shaper:免费多功能 PDF 工具箱,一站式满足您的 PDF 需求!

​PDF Shaper 是一款功能强大且完全免费的 PDF 工具箱,它几乎涵盖了日常 PDF 操作的方方面面,无论是转换、编辑还是处理,都能轻松搞定。以下是这款软件的详细介绍: 功能丰富,一应俱全 PDF 转换功能强大 PDF 转 Word&am…

未来替代手机的产品,而非手机的本身

替代手机的产品包括以下几种: 可穿戴设备:智能手表、智能眼镜等可穿戴设备可以提供类似手机的功能,如通话、信息推送、浏览网页等。 虚拟现实(VR)技术:通过佩戴VR头显,用户可以进行语音通话、发…

deepseek+“D-id”或“即梦AI”快速生成短视频

1、deepseek生成视频脚本 1.1、第一步:使用通用模板提出需求,生成视频脚本 对话输入示例脚本1: 大年初五是迎财神的日志,帮我生成10秒左右的短视频, 体现一家3口在院子里欢庆新年, 孩子在院子里放鞭炮烟…

在CT107D单片机综合训练平台上实现外部中断控制LED闪烁

引言 在单片机开发中,外部中断是一个非常重要的功能,它可以让单片机在检测到外部信号变化时立即做出响应。本文将详细介绍如何在CT107D单片机综合训练平台上使用外部中断来控制LED灯的闪烁。我们将使用两种不同的方式来实现这一功能:一种是在…

为什么推荐使用 LabVIEW 开发

在仪器行业的软件开发中,LabVIEW 以其图形化编程、快速原型开发、高效硬件集成的优势,成为自动化测试和控制系统的理想选择。尽管一些工程师仍然坚持使用 C 语言,但这更多是出于习惯,而非技术上的必然。LabVIEW 不仅支持 NI 硬件&…

力扣1448. 统计二叉树中好节点的数目

Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历,边遍历边对比并更新当前路径上的最大值pathMax,若当pathMax小于等于当前节点值,则好节点的数目加一 复杂度 时间复杂度: O (…

DeepSeek帮助做【真】软件需求-而不是批量刷废话

尝试给DeepSeek一份系统用例规约,让它帮判断哪些地方还没有覆盖涉众利益。结果见以下 需求工作的重点可以放在建模精细的真实现状流程和精细的真实涉众利益上,AI帮助推演系统需求。

【JVM详解五】JVM性能调优

示例: 配置JVM参数运行 #前台运行 java -XX:MetaspaceSize-128m -XX:MaxMetaspaceSize-128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8 - XX:UseConcMarkSweepGC -jar /jar包路径 #后台运行 nohup java -XX:MetaspaceSize-128m -XX:MaxMetaspaceS…

Qt文本处理【正则表达式】示例详解:【QRegularExpression】

在 Qt 中,正则表达式是处理文本的强大工具,它能够帮助我们匹配、搜索和替换特定的字符串模式。自 Qt 5 起,QRegularExpression 类提供了对 ECMAScript 标准的正则表达式支持,这使得它在处理各种复杂的字符串任务时变得更加高效和灵…

【算法学习】拓扑排序(Topological Sorting)

目录 定义 例子 拓扑排序的实现 核心思想 实现方法 1,Kahn算法(基于贪心策略) 步骤: 用二维数组存储图的例子 用哈希表存储图的例子 2,基于DFS的后序遍历法 总结 拓扑排序的应用场景 1,任务调度 …