<#if settings.post_mathjax!false>

SpringBoot核心特新

Spring Boot 的核心特性,其实就是为了解决传统 Spring 开发配置繁琐、依赖冲突、部署麻烦这三大痛点。
主要可以总结为这5点:

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

In one word

Spring Boot 就是通过 Starters 统一依赖,通过自动配置减少代码,通过内嵌容器简化部署,配合配置解耦和 Actuator 监控,打造了一个开箱即用的微服务开发框架。

应用

实际使用自动化装配的例子:可以实现一个 spring boot starter 来帮助项目简化某些通用的业务的。
比如现在项目中有很多列表接口需要导出 excel。我利用自动化配置写了一个 excel 导出模块。
实现思路如下:

  1. 写一个 @ExcelExport 注解,放在列表接口上。利用切面来切列表的返回结果,拿到列表结果后写入 excel 当中。
  2. 然后写一个配置类放在 meta/info/spring.factories 文件下。这样让 spring boot 自动装配我们这个写 excel 文件的处理类。
  3. 在整个项目中有需要列表导出 excel 的地方,仅需把注解写在列表接口上即可。

本站由 Rizxfrog 使用 Stellar 创建。