SpringBoot4大核心组件
SpringBoot4大核心组件
starter, autoconfigure, CLI 以及actuator
Starter
-
官方提供的 starter 命名:spring-boot-starter-xxx
-
非官方的 starter 命名:xxx-spring-boot-starter
其中 xxx 就是我们想要依赖的组件或者 jar 包。引入之后通过简单的约定配置就可以正常使用。
-
Starter 帮我们封装好了所有需要的依赖,避免我们自己添加导致的一些Jar包冲突或者缺少包的情况;
-
Starter 帮我们自动注入了需要的 Bean 实例到 Spring 容器中,不需要我们手动配置(这个可以说是 starter 干的,但实际上并不是);
所以: starter 包的内容就是 pom 文件,就是一个依赖传递包。
Spring Boot Autoconfigure
autoconfigure 在我们的开发中并不会被感知,因为它是存在与我们的 starter 中的。所以我们的每个 starter 都是依赖 autoconfigure 的
autoconfigure 内容是配置 Bean 实例到 Spring 容器的实际代码实现包,然后提供给 starter 依赖。所以说配置 Bean 实例到Spring容器中实际是 autoconfigure 做的,因为是 starter 依赖它,所以也可以说是 starter 干的。
所以:autocinfigure 是 starter 体现出来的能力的代码实现
Spring Boot CLI
Spring Boot CLI 是一个命令行使用 Spring Boot 的客户端工具;主要功能如下:
- 运行 groovy 脚本
- 打包 groovy 文件到 jar
- 初始化 Spring Boot 项目
- 其他
详见官网
Spring Boot actuator
actuator 是 Spring Boot 的监控插件,本身提供了很多接口可以获取当前项目的各项运行状态指标。
使用步骤:
-
添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
-
配置需要开启监控的端点
management: endpoint: health: ## 开启健康监控端点 enabled: true beans: ## 开启Bean实例监控端点 enabled: true
重要端点:
-
health端点:端点会聚合你程序的健康指标,来检查程序的健康情况,端点有很多自动配置的健康指示器:如 redis、rabbitmq、db 等组件。
-
metrics端点:用来返回当前应用的各类重要度量指标,比如:内存信息、线程信息、垃圾回收信息、tomcat、数据库连接池等。
-
loggers端点:暴露了我们程序内部配置的所有 logger 的信息,能够动态修改你的日志等级;只需要发起一个 URL 为
http://localhost:8080/actuator/loggers/root
的POST
请求,POST 报文如下:{ "configuredLevel": "DEBUG" }
-
info端点:可以用来展示你程序的信息。我理解过来就是一些程序的基础信息。并且你可以按照自己的需求在配置文件
application.properties
中个性化配置(默认情况下,该端点只会返回一个空的 json 内容。) -
beans端点:会返回 Spring 容器中所有 bean 的别名、类型、是否单例、依赖等信息
-
heapdump端点:会自动生成一个 Jvm 的堆文件 heapdump。我们可以使用 JDK 自带的 Jvm 监控工具 VisualVM 打开此文件查看内存快照。
-
threaddump端点:主要展示了线程名、线程 ID、线程的状态、是否等待锁资源、线程堆栈等信息。方便我们在日常定位问题的时候查看线程的情况。
-
shutdown端点:属于操作控制类端点,可以优雅关闭 Spring Boot 应用。要使用这个功能首先需要在配置文件中开启:
management.endpoint.shutdown.enabled=true
-
-
启动服务并验证
-
查看各个监控信息
浏览器访问监控地址:http://localhost:9500/actuator
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix