Spring Boot 2.0 有哪些新特性_Spring Boot 2.0新功能

教程分享 > Java教程 > Spring (7816) 2024-08-07 11:05:25

1.概述

Spring Boot 为Spring生态系统带来了一种自以为是的方法。首先于2014年中发布。Spring Boot已经经过了很多的发展和改进。它的Spring Boot 2.0版今天准备在2018年初发布。

在这个受欢迎的图书馆试图帮助我们的地方有不同的领域:

  • 依赖管理。通过初学者和各种包管理器集成
  • 自动配置。试图最大限度地减少Spring应用程序需要准备好的配置数量,并优化约定而不是配置
  • 生产就绪功能。如执行器,更好的日志记录,监控,指标或各种PAAS集成
  • 增强开发经验。使用多个测试实用程序或使用spring-boot-devtools的更好的反馈循环

在本文中,我们将探讨为Spring Boot 2.0计划的一些更改和功能。我们还会描述这些变化如何帮助我们提高生产力。

 

2.Spring boot 2.0 依赖环境

2.1 Java基线

Spring Boot 2.x将不再支持Java 7及更低版本,因此Java 8是最低要求。

它也是第一个支持Java 9的版本。没有计划在1.x分支上支持Java 9。这意味着如果你想使用最新的Java版本并利用这个框架,Spring Boot 2.x是你唯一的选择
 

2.2 材料清单

随着Spring Boot的每个新版本的发布,Java生态系统的各种依赖关系的版本都得到升级。

在2.x中,这也不例外。列出它们是没有意义的,但我们可以看看spring-boot-dependencies.pom,以查看在任何给定时间点使用的版本。

有关最低要求版本的一些要点:

  • Tomcat最低支持版本是8.5
  • Hibernate支持的最低版本是5.2
  • Gradle最低支持版本是3.4

2.3 Gradle插件

Gradle插件已经通过重大改进和一些突破性更改。

要创建胖罐,bootRepackage Gradle的任务将被bootJarbootWar分别替换为jarwar

如果我们想在1.x中使用Gradle插件运行我们的应用程序,我们可以执行gradle bootRun。 在Spring Boot 2.x bootRun中扩展了Gradle的JavaExec。这意味着我们可以更容易地使用我们通常在传统JavaExec任务中使用的相同配置来配置它。

有时我们发现自己想要利用Spring Boot BOM。但有时我们不想构建完整的引导应用程序或重新打包它。

在这方面,知道Spring Boot 2.x默认不再应用依赖管理插件是很有趣的。

如果我们想要Spring Boot依赖管理,我们应该添加:

apply plugin: 'io.spring.dependency-management'
这在上述场景中以较少的配置给予我们更大的灵活性。
 

3.自动配置

3.1 Spring Security

在Spring Boot 2.x中,安全配置得到极大的简化。默认情况下,一切都是安全的,包括静态资源和执行器端点。

一旦用户明确配置安全性,Spring Boot的默认设置将停止影响。用户可以在一个地方配置所有访问规则。

这将阻止我们与WebSecurityConfigurerAdapter排序问题纠缠在一起。这些问题通常在以自定义方式配置Actuator和App安全规则时发生。

让我们来看看混合执行器和应用程序规则的简单安全片段:

http.authorizeRequests()
  .requestMatchers(EndpointRequest.to("health"))
    .permitAll() // Actuator rules per endpoint
  .requestMatchers(EndpointRequest.toAnyEndpoint())
    .hasRole("admin") // Actuator general rules
  .requestMatchers(StaticResourceRequest.toCommonLocations())
    .permitAll() // Static resource security
  .antMatchers("/**")
    .hasRole("user") // Application security rules
  // ...
更多spring security 使用讲解点击这篇博客spring boot 2.0 security 5.0 整合入门

3.2 反应性支持

Spring Boot 2为不同的反应模块带来了一套新的启动器。一些例子是WebFlux,以及MongoDB,Cassandra或Redis的反应对象。

还有WebFlux的测试工具。特别是,我们可以利用@WebFluxTest。这与最初作为1.4.0中各种测试片的一部分引入的旧版@WebMvcTest类似。

4.生产就绪功能

Spring Boot带来了一些有用的工具,使我们能够创建可用于生产的应用程序。除此之外,我们可以利用Spring Boot Actuator。

执行器包含用于简化监控,追踪和一般应用内省的各种工具。关于执行器的更多细节可以在我们以前的文章中找到。

凭借其2版本执行器已经通过重大改进。这个迭代着重于简化定制。它还支持其他网络技术,包括新的反应模块。

4.1。技术支持

在Spring Boot 1.x中,只有Spring-MVC支持执行器端点。然而,在2.x中,它变得独立和可插入。Spring Boot现在为WebFlux,Jersey和Spring-MVC带来了支持。

和以前一样,JMX仍然是一个选项,可以通过配置启用或禁用。

4.2。创建自定义端点

新的执行器基础设施与技术无关。正因为如此,开发模式从头开始重新设计。

新模式也带来更大的灵活性和表现力。

我们来看看如何为执行器创建一个水果端点:

@Endpoint(id = "fruits")
public class FruitsEndpoint {
 
    @ReadOperation
    public Map<String, Fruit> fruits() { ... }
 
    @WriteOperation
    public void addFruits(@Selector String name, Fruit fruit) { ... }
}

一旦我们在我们的ApplicationContext中注册了FruitsEndpoint 它就可以使用我们选择的技术作为Web端点公开。我们也可以通过JMX公开它,具体取决于我们的配置。

将我们的端点转换为Web端点将导致:

  • GET/应用/水果返回水果
  • POST/ applications / fruits / {a-fruit}处理应该包含在净荷中的水果

还有更多的可能性。我们可以检索更多粒度数据。另外,我们可以为每种底层技术定义特定的实现(例如,JMX和Web)。为了本文的目的,我们将把它作为一个简单的介绍,而不会涉及太多细节。

4.3。执行器的安全

在Spring Boot 1.x Actuator中定义了自己的安全模型。这个安全模型与我们的应用程序使用的安全模型不同。

当用户试图提升安全性时,这是许多痛点的根源。

在2.x中,应该使用与应用程序其余部分相同的配置来配置安全配置。

默认情况下,大多数执行器端点被禁用。这与Spring Security是否在类路径中无关。除了状态信息之外,所有其他端点都需要由用户启用。

4.4。其他重要变化

  • 现在大多数配置属性都在management.xxx下,例如:management.endpoints.jmx
  • 一些端点具有新的格式。例如:env,flywayliquibase
  • 预定义的端点路径不再可配置

5.增强发展经验

5.1。更好的反馈

Spring引入了1.3中的devtools

它负责平滑典型的发展问题。例如,视图技术的缓存。它还执行自动重新启动和浏览器实时重新加载。此外,它使我们能够远程调试应用程序。

在2.x中,当我们的应用程序被devtools重新启动时,“delta”报告将被打印出来。本报告将指出哪些变化及其对我们的应用程序可能产生的影响。

假设我们定义一个JDBC数据源来覆盖Spring Boot配置的JDBC数据源。

evtools将指示自动配置的那个不再被创建。它还会指出原因,即对于类型为javax.sql.DataSource的@ConditionalOnMissingBean中的不良匹配evtools将在执行重新启动后打印此报告。

5.2。打破变化

由于JDK 9的问题,devtools不再支持通过HTTP进行远程调试。

6.总结

在本文中,我们介绍了Spring Boot 2将带来的一些变化。

我们讨论了依赖关系以及Java 8如何成为最低支持版本。

接下来,我们谈到了自动配置。我们专注于安全性。我们还谈到了执行器和它所获得的许多改进。

最后,我们谈到了在提供的开发工具中发生的一些小的调整。

https://www.leftso.com/article/443.html

相关文章
Spring Boot 2.0 有哪些新特性_Spring Boot 2.0新功能,在本文中,我们将探讨为Spring Boot 2.0计划的一些更改和功能。我们还会描述这些变化如何帮助我们提高...
Spring Boot 2.0 Redis整合,通过spring boot 2.0整合Redis作为spring缓存框架的实现。
spring boot 2.0 security 5.0 整合,实现自定义表单登录。spring boot 2.0框架使用。
Spring Boot 2.1 新特性,已升级Spring 版本为5.1,支持servlet 4.0,支持Tomcat 9.0等等
Spring Boot 2.0,Spring框架的Spring Boot 中的Spring Boot Actuator变化讲解。并且了解如何在Spring Boot 2.0中使用Actuator...
Spring Boot 2.0 绑定properties属性资源文件 Spring Boot 2.0 读取properties配置文件值 Spring Boot 2.0获取properties配...
Spring Boot 2.0 支持的Apache Camel 版本发布了_Apache Camel 2.22发布支持Spring Boot 2.0
Spring Boot 1.x升级到Spring Boot 2.0迁移指南
Spring Boot 2.0 入门 logoback配置实战教程,俗话说好马配好鞍。Spring Boot 框架从各方面给我们带来了开发效率。日志自然也不会落下。本文将讲解与Spring Bo...
从Spring 6和Spring Boot 3开始,Spring框架支持“HTTP API的问题详细信息”规范RFC 7807。本Spring Boot 教程将详细指导您完成这一新增强。1.问题...
学习使用Java配置创建Spring批处理作业(具有多个步骤)。 它使用Spring Boot 2,Spring batch 4和H2数据库来执行批处理作业。
从Spring 6和Spring Boot 3开始,与OpenFeign和Retrofit等其他声明式客户端类似,Spring框架支持以Java接口的形式创建RSocket服务,并为RSocke...
本文将介绍Spring Boot和HikariCP示例。HikariCP是快速,简单,可靠和生产就绪的JDBC连接池。在Spring Boot 2.0版本中,默认数据库池技术已从Tomcat P...