Spring-Boot v3.4.3¶
为什么要使用Spring-Boot¶
在现代软件开发中,开发者常常面临着一个矛盾:如何在快速迭代的需求下,保持代码的整洁性和可维护性?Spring-Boot应运而生,它不仅简化了Java应用程序的开发流程,还提供了一种快速构建和部署的方式。想象一下,你在一个项目中花费了数周的时间来配置框架和依赖,而当你终于完成时,需求却又发生了变化。Spring-Boot通过其开箱即用的特性和自动配置功能,帮助开发者迅速应对变化,减少了繁琐的配置工作,让你可以将更多的精力放在业务逻辑上。
Spring-Boot是什么¶
Spring-Boot是一个开源的Java框架,旨在简化Spring应用程序的开发。它通过提供默认配置和自动化设置,使得开发者可以快速启动和运行新的Spring项目。Spring-Boot的核心理念是“约定优于配置”,这意味着开发者只需关注业务逻辑,而不必为繁琐的配置而烦恼。
入门示例¶
假设你正在开发一个在线书店的应用程序。使用Spring-Boot,你可以通过简单的命令行指令快速创建一个新的项目。只需运行以下命令:
spring init --dependencies=web,data-jpa,h2 book-store
这将创建一个包含Web、JPA和H2数据库支持的基本项目结构。接下来,你只需编写一个简单的控制器来处理书籍的请求:
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping
public List<Book> getAllBooks() {
// 返回书籍列表
}
}
通过这种方式,你可以在几分钟内启动一个功能齐全的应用程序,极大地提高了开发效率。
Spring-Boot v3.4.3版本更新了什么¶
Spring-Boot v3.4.3版本带来了多个重要更新,包括新增JavaVersion枚举的TWENTY_FOUR选项,修复了使用Log4j2时控制台输出丢失的问题,改进了Maven插件在Windows上的类路径参数处理,增强了Reactive Jetty服务器的快速失败机制,以及优化了Thymeleaf的视图解析器。这些更新旨在提升开发者的使用体验和应用程序的稳定性。
更新日志¶
⭐ 新特性¶
- 将TWENTY_FOUR添加到JavaVersion枚举
🐞 Bug修复¶
- 使用Log4j2时,控制台输出可能会丢失
- Maven插件在Windows上对类路径参数的使用不一致
- 配置使用Jetty不支持的服务器名称捆绑时,Reactive Jetty Web服务器未能快速失败
- 当Web服务器应用程序上下文刷新失败时,停止或销毁Web服务器时会丢失原始失败信息
- 如果未存在spring-webmvc,Thymeleaf的视图解析器应当退回
- 当ReactiveWebServerApplicationContext刷新失败时,WebServer未被销毁
- H2ConsoleAutoConfiguration未考虑非默认数据源候选项
- 开发期间,Banner占位符和默认值不起作用
- Mustache模板在Content-Type响应头中返回ISO-8859-1字符集而非UTF-8
- Servlet EndpointRequest未能正确匹配Web服务器命名空间
- 使用默认管理安全性与WebFlux和健康探针启用时出现java.lang.ClassCastException
- 依赖内部类的Logback配置在本地镜像中不起作用
- 在3.3.8或3.4.2之后,无法注册SSL捆绑的IllegalStateException
- 指标和健康检查未包含非默认候选Bean
📔 文档¶
- 文档中说明自动配置类应使用其二进制名称进行识别
- 更正MVC安全性中关于UserDetailsService自动配置何时退回的拼写错误
- 链接到JarLauncher的javadoc
- 使用可观察性注解时,建议小心避免双重仪器化
- 更正“运行您的应用程序”中的拼写错误
- 文档中说明在使用没有Shell的Docker镜像时的Kubernetes preStop处理程序
- 在“开发您的第一个Spring Boot应用程序”部分中,源代码片段使用根包
- 更正“开发您的第一个Spring Boot应用程序”中的MyApplication.java位置
- 添加Jackson Javadoc的链接
- 警告某些Quartz数据库架构脚本在使用前必须修改
🔨 依赖升级¶
- 升级到Commons Pool2 2.12.1
- 升级到Couchbase Client 3.7.8
- 升级到Groovy 4.0.25
- 升级到Hibernate 6.6.8.Final
- 升级到HttpClient5 5.4.2
- 升级到HttpCore5 5.3.3
- 升级到Infinispan 15.0.13.Final
- 升级到jOOQ 3.19.19
- 升级到Json-smart 2.5.2
- 升级到Maven Clean Plugin 3.4.1
- 升级到Micrometer 1.14.4
- 升级到Micrometer Tracing 1.4.3
- 升级到Native Build Tools Plugin 0.10.5
- 升级到Neo4j Java Driver 5.28.1
- 升级到Netty 4.1.118.Final
- 升级到Prometheus Client 1.3.6
- 升级到R2DBC MySQL 1.3.2
- 升级到Reactor Bom 2024.0.3
- 升级到REST Assured 5.5.1
- 升级到RSocket 1.1.5
- 升级到Spring AMQP 3.2.3
- 升级到Spring Authorization Server 1.4.2
- 升级到Spring Data Bom 2024.1.3
- 升级到Spring Framework 6.2.3
- 升级到Spring GraphQL 1.3.4
- 升级到Spring Integration 6.4.2
- 升级到Spring Kafka 3.3.3
- 升级到Spring LDAP 3.2.11
- 升级到Spring Pulsar 1.2.3
- 升级到Spring Security 6.4.3
- 升级到Spring Session 3.4.2
- 升级到Testcontainers 1.20.5
- 升级到Testcontainers Redis Module 2.2.4
总结¶
在Spring-Boot v3.4.3版本中,新增了JavaVersion枚举的TWENTY_FOUR选项,并修复了多个关键Bug,提升了开发者的使用体验。此外,文档也进行了多项改进,确保开发者能够更顺利地使用该框架。最后,多个依赖项得到了升级,以保持与最新技术的兼容性和性能优化。