跳转至

Spring-Boot v3.3.5

为什么要使用Spring-Boot

在当今快速发展的技术世界中,开发者面临着一个矛盾:如何在保证高效的同时,保持代码的可维护性和可扩展性?Spring-Boot正是为了解决这一难题而生。它不仅简化了Java应用程序的开发过程,还提供了强大的自动配置功能,让开发者能够专注于业务逻辑,而不是繁琐的配置。想象一下,您可以在几分钟内启动一个全功能的应用程序,而不必为复杂的设置而烦恼。这种高效与灵活的结合,使得Spring-Boot成为现代开发的理想选择。

Spring-Boot是什么

Spring-Boot是一个开源Java框架,旨在简化Spring应用程序的开发。它通过提供开箱即用的配置和自动化功能,使开发者能够快速构建独立的、生产级的Spring应用程序。Spring-Boot的核心理念是“约定优于配置”,这意味着它会根据常见的开发需求自动配置应用程序,从而减少了手动配置的复杂性。

入门示例

假设您正在开发一个在线书店应用程序。使用Spring-Boot,您可以快速创建一个RESTful API来处理书籍的增删改查操作。只需几行代码,您就可以启动一个内嵌的Tomcat服务器,并通过简单的注解定义控制器。例如:

@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public List<Book> getAllBooks() {
        return bookService.findAll();
    }
}

通过这种方式,您可以专注于业务逻辑,而不必担心底层的配置细节。Spring-Boot的强大之处在于,它让您在短时间内实现复杂的功能,提升了开发效率。

Spring-Boot v3.3.5版本更新了什么

Spring-Boot v3.3.5版本进行了多项重要更新,包括修复了多个bug,改进了文档,并升级了多个依赖项。特别是,嵌入的Tomcat版本要求更新至10.1.25,支持Java 23,并对Rabbit Streams的自动配置进行了优化。这些更新不仅提升了框架的稳定性,也增强了开发者的使用体验。

更新日志

🐞 Bug 修复

  • 运行 mvn spring-boot:run 时,如果类路径超过Windows的长度限制,会留下临时文件。
  • 在失败的测试中,ConditionReportApplicationContextFailureProcessor生成的报告始终为空。
  • 用户的区域设置可能会对不区分大小写的比较产生不利影响。
  • DataSourceProperties#driverClassIsLoadable失败时不应在错误流中打印堆栈跟踪。
  • 一些 @ControllerEndpoint@RestControllerEndpoint 基础设施仍未被弃用。
  • Rabbit Streams的自动配置未考虑RabbitConnectionDetails。
  • 从ForkJoinPool任务加载协议解析器时抛出ClassNotFoundException。
  • 在本地映像中创建ActiveMQ Artemis连接工厂失败。
  • 当上下文包含多个注册表且没有一个是主要的时,会出现重复的计量绑定。

📔 文档

  • 文档中说明嵌入的Tomcat必须至少为10.1.25。
  • 修复systemd示例配置。
  • 文档中说明最大HTTP请求头大小属性的确切行为是特定于服务器的。
  • 澄清在定义自己的ObjectMapper时,为什么推荐使用 @Primary
  • 改进Binder#bindOrCreate(String, Class)的javadoc。
  • 文档中说明Tomcat的maxQueueCapacity需要大于0。
  • 删除指向jar-to-war入门指南的过时链接。
  • 修复文档中的拼写和格式错误。
  • 修复“清理敏感值”示例中的大小写问题。
  • 修复Regex javadoc链接。
  • 文档中说明如何从环境变量绑定Map属性。
  • 改进可重现构建的类路径索引文档。
  • 删除指向Spring Data GemFire的链接。
  • 按字母顺序排列公共应用程序属性中的部分。
  • 改进javadoc,描述何时 @ConditionalOn(Missing)Bean 将推断类型以匹配。
  • 文档中说明如何在Maven的本地映像中处理MANIFEST.MF。
  • 修复指向Micrometer参考文档的链接。
  • 改进文档。
  • 为PrometheusScrapeEndpoint(PrometheusRegistry, Properties)添加javadoc。
  • 删除关于Tomcat优雅关闭需要9.0.33或更高版本的说明,因为我们现在要求10.1.x。
  • 文档中说明对Java 23的支持。
  • 改进CycloneDX集成的文档。

🔨 依赖升级

  • 禁止升级到Undertow 2.3.18.Final。
  • 升级到CycloneDX Maven插件2.8.2。
  • 升级到GraphQL Java 22.3。
  • 升级到Infinispan 15.0.10.Final。
  • 升级到Jaybird 5.0.6.java11。
  • 升级到Jersey 3.1.9。
  • 升级到Jetty 12.0.14。
  • 升级到Jetty Reactive HTTPClient 4.0.8。
  • 升级到jOOQ 3.19.14。
  • 升级到JUnit Jupiter 5.10.5。
  • 升级到Logback 1.5.11。
  • 升级到Micrometer 1.13.6。
  • 升级到Micrometer Tracing 1.3.5。
  • 升级到Neo4j Java Driver 5.25.0。
  • 升级到Netty 4.1.114.Final。
  • 升级到Pooled JMS 3.1.7。
  • 升级到Pulsar Reactive 0.5.8。
  • 升级到R2DBC Pool 1.0.2.RELEASE。
  • 升级到R2DBC Postgresql 1.0.7.RELEASE。
  • 升级到Reactor Bom 2023.0.11。
  • 升级到Spring Authorization Server 1.3.3。
  • 升级到Spring Data Bom 2024.0.5。
  • 升级到Spring Framework 6.1.14。
  • 升级到Spring GraphQL 1.3.3。
  • 升级到Spring Integration 6.3.5。
  • 升级到Spring LDAP 3.2.7。
  • 升级到Spring Pulsar 1.1.5。
  • 升级到Spring RESTDocs 3.0.2。
  • 升级到Spring Retry 2.0.10。
  • 升级到Spring Security 6.3.4。
  • 升级到Spring Session 3.3.3。
  • 升级到Tomcat 10.1.31。

总结

在Spring-Boot v3.3.5版本中,开发团队进行了多项重要的bug修复和文档改进,同时升级了多个关键依赖项,以提升框架的稳定性和用户体验。这些更新不仅解决了开发者在使用过程中遇到的问题,还增强了对新技术的支持,确保了Spring-Boot在现代开发中的领先地位。