美文网首页
微服务架构实战篇:快速入手SpringBoot 2.0,欢迎入坑

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

作者: IT实战联盟Lin | 来源:发表于2018-09-05 17:10 被阅读375次

    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两种存储。
    只要添加如下依赖:

    <dependency> 
             <groupId>org.springframework.boot</groupId> 
             <artifactId>spring-boot-starter-quartz</artifactId> 
    </dependency> 
    

    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 DemoApplication
        fun main(args: Array<String>) {
            runApplication<DemoApplication>(*args)
        }
    

    关注我们

    更多精彩内容请关注“IT实战联盟”微信公众号哦~~~

    IT实战联盟.jpg

    相关文章

      网友评论

          本文标题:微服务架构实战篇:快速入手SpringBoot 2.0,欢迎入坑

          本文链接:https://www.haomeiwen.com/subject/riknwftx.html