SpringBoot核心特新
Spring Boot 的核心特性,其实就是为了解决传统 Spring 开发配置繁琐、依赖冲突、部署麻烦这三大痛点。
主要可以总结为这5点:
- 自动配置:这是 Spring Boot 最核心的特性。它会根据你引入了什么依赖,自动帮你配置好 Bean。底层是基于
@EnableAutoConfiguration比如发现你有 MySQL 驱动,它就自动帮你配好DataSource;发现你有Spring MVC,就自动配好DispatcherServlet。约定大于配置,除非你手动改,否则它就按默认的来。 - Starters 依赖启动器:以前我们要一个个找jar 包,还担心版本冲突。现在 Spring Boot 提供了各种场景套餐。比如想做 Web 开发,直接引入spring-boot-starter-web 它就把 Tomcat、Spring MVC、Jackson 这些相关的包全打包给你了,而且版本都经过了官方测试,绝对兼容
- 内嵌容器:以前还要单独装 Tomcat,把 war 包扔进去。现在 Spring Boot 直接把 Tomcat(或者 Jetty、Undertow)塞进了 jar 包里,直接执行java -jar 就能跑,微服务部署极其方便。
- 外部化配置:代码和配置分离。比如可以用
application-{profile}.yml来区分开发、测试、生产环境。甚至可以通过启动命令参数、环境变量来临时修改配置,而不需要重新打包。 - Actuator(监控与管理):它提供了一系列 HTTP 端点(Endpoints),让我们能实时看到应用的健康状态(Health)、内存指标(Metrics)、线程堆栈等。这在生产环境中排查问题非常关键。

In one word
Spring Boot 就是通过 Starters 统一依赖,通过自动配置减少代码,通过内嵌容器简化部署,配合配置解耦和 Actuator 监控,打造了一个开箱即用的微服务开发框架。
应用
实际使用自动化装配的例子:可以实现一个 spring boot starter 来帮助项目简化某些通用的业务的。
比如现在项目中有很多列表接口需要导出 excel。我利用自动化配置写了一个 excel 导出模块。
实现思路如下:
- 写一个
@ExcelExport注解,放在列表接口上。利用切面来切列表的返回结果,拿到列表结果后写入 excel 当中。 - 然后写一个配置类放在 meta/info/spring.factories 文件下。这样让 spring boot 自动装配我们这个写 excel 文件的处理类。
- 在整个项目中有需要列表导出 excel 的地方,仅需把注解写在列表接口上即可。