微服务架构实战篇:快速入手SpringBoot 2.0,欢迎入坑哦~

SpringBoot 2.0 基本要求

Java

最低要求8以上,不再支持Java 6 和 7等低版本。

Tomcat

最低版本为8.5。

Jetty

最低版本为9.4。

Hibernate

最低版本为5.3。

Gradle

要求Gradle最低版本为3.4。

SendGrid

最低支持版本为3.2。为了支持这次升级,API key是现在唯一支持的认证方式。username和password已经被去掉。

reactive场景支持

为了支持reactive使用场景,内嵌的容器包结构被重构了的幅度有点大。EmbeddedServletContainer被重命名为WebServer,并且org.springframework.boot.context.embedded 包被重定向到了org.springframework.boot.web.embedded包下。举个例子,如果你要使用TomcatEmbeddedServletContainerFactory回调接口来自定义内嵌Tomcat容器,你现在应该使用TomcatServletWebServerFactory。

Servlet-specific 的server properties调整

大量的Servlet专属的server.* properties被移到了server.servlet下:

由此可以看出一些端倪,那就是server不再是只有servlet了,还有其他的要加入。

Actuator 默认映射

Actuator的端点(endpoint)现在默认映射到/application,比如,/info 端点现在就是在/application/info。但你可以使用management.context-path来覆盖此默认值。

@ConditionalOnBean

@ConditionalOnBean现在的判断条件由OR变为了AND。

Spring Loaded不再支持

由于Spring Loaded项目已被移到了attic了,所以不再支持Spring Loaded了。现在建议你去使用Devtools。Spring Loaded不再支持了。

Hazelcast不再支持自动配置

不能再自动配置HazelcastInstance进行缓存。 因此,spring.cache.hazelcast.config属性不再可用。

默认connection pool变了

默认的连接池已经由Tomcat切换到了HikariCP。如果你过去使用spring.datasource.type在基于Tomcat的应用程序中强制使用Hikari,现在你可以删除这个覆盖了。同样的,如果想要使用Tomcat的连接池,只需要简单的加入以下配置就可以了:

spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

Spring Session

Spring Session的 filter 现在支持自动配置如下dispatcher类型 ASYNC, ERROR, and REQUEST 。同样是为了让Spring Boot的配置与Spring Session的默认配置保持一致。值得注意的是从Spring Session 2.0起, Mongo和GemFire 将不再被支持。

Spring Security

Spring Security的 filter 现在可以自动配置如下类型了: ASYNC, ERROR, and REQUEST 。这样就让Spring Boot中的配置和Spring Security默认配置保持一致了。

Starter 的传递依赖的改变

以前有几个Spring Boot starter是依靠Spring MVC和spring-boot-starter-web传递的。 为了对Spring WebFlux的支持,spring-boot-starter-mustache和spring-boot-starter-thymeleaf不再依赖spring-boot-starter-web。现在你要自己选择并添加spring-boot-starter-web或spring-boot-starter-webflux作为依赖。

记住:web和webflux是平行的关系。我们之前的文章中提到过spring webflux。你可以移步查看:Spring 5 新增全新的reactive web框架:webflux。

Solr健康指标

针对Solr的健康检查信息不再是solrStatus这个属性了。现在是status property,是一个标准状态属性,对应于一个的整型值。

默认代理策略

从Spring Boot的CLI中删除了测试支持,现在建议你使用Maven或Gradle构建应用程序,去使用它们提供的丰富的测试支持吧。

Multipart配置改变

为了更好的反映Servlet的特性, spring.http.multipart. 属性已经被命名为 spring.servlet.multipart。

Spring Framework 5.0

Spring Boot 2.0 是建立在Spring Framework 5.0之上的(最低要求)。Spring 5最大的亮点就是reactive。可以去看一下:Spring 5 新增全新的reactive web框架:webflux。

松绑定改善

松绑定已经得到改善。这里简单的举个例子:

简单的属性在删除特殊字符然后转成小写后进行绑定。比如:

下面的属性最终都会被映射为spring.jpa.databaseplatform=mysql:

spring.jpa.database-platform=mysql
spring.jpa.databasePlatform=mysql
spring.JPA.database_platform=mysql

WebFlux 和 WebFlux.fn支持

Spring Boot 2.0 提供了一个新的starter ,用来支持Reactive Spring web frameworks。该starter为spring-boot-starter-webflux。其中Reactor Netty是默认的web引擎(spring-boot-starter-reactor-netty)。

Elasticsearch

Elasticsearch已升级到5.4。 与Elastic公司宣布不再支持嵌入式Elasticsearch的情况一样,NodeClient的自动配置已被删除。就是这么的节奏一致。现在你可以通过使用spring.data.elasticsearch.cluster-nodes自动配置TransportClient,具体value可以是一个或多个要连接的节点的地址。

Quartz Scheduler

Spring Boot 2 针对Quartz调度器提供了支持。你可以加入spring-boot-starter-quartz starter来启用。而且支持基于内存和基于jdbc两种存储。

只要添加如下依赖:

 
org.springframework.boot
spring-boot-starter-quartz

Spring Data Web配置

Spring Boot公开了一个新的spring.data.web配置名称空间,可以轻松配置分页和排序。

Json starter

一个全新的spring-boot-starter-json starter 聚合了很多常用的json工具,可以支持对json的读写。

它不仅仅提供了jackson-databind而且当你使用java8时候,还提供了有用的模块:jackson-datatype-jdk8, jackson-datatype-jsr310 和 jackson-module-parameter-names。

之前使用jackson-databind的地方就可以使用这个新的starter了。

Thymeleaf starter

Thymeleaf starter现在包含了thymeleaf-extras-java8time,开箱即用。

JdbcTemplate

Spring Boot自动配置(auto-configuration)的JdbcTemplate现在可以通过spring.jdbc.template命名空间进行定制。 此外,自动配置(auto-configuration)的NamedParameterJdbcTemplate在底层就是JdbcTemplate。

@DataRedisTest

新加了一个测试的时候针对redis的新注解。

Kotlin扩展

Spring Boot 2.0 发布了Kotlin runApplication扩展:

package com.example.demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class DemoApplicationfun main(args: Array) {
runApplication(*args)
}

---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦

微服务架构实战篇:快速入手SpringBoot 2.0,欢迎入坑哦~


分享到:


相關文章: