spring5的新特性与JDK相关的升级

spring5.0 在 2017 年 9 月发布了它的 GA(通用)版本。该版本是基于 jdk8 编写的,所以 jdk8 以下版本 将无法使用。同时,可以兼容 jdk9 版本。 tomcat 版本要求 8.5 及以上。
注: 我们使用 jdk8 构建工程,可以降版编译。但是不能使用 jdk8 以下版本构建工程。 由于 jdk 和 tomcat 版本的更新,我们的 IDE 也需要同时更新。(目前使用的 eclipse 4.7.2)

更新的内容:

1.基于JDK代码的反射增强:
spring5的新特性与JDK相关的升级_第1张图片
spring5的新特性与JDK相关的升级_第2张图片
测试后运行实现如下:
在这里插入图片描述
在这里插入图片描述

2.核心器的更新:

       Spring Framework 5.0 现在支持候选组件索引作为类路径扫描的替代方案。该功能已经在类路径扫描器中 添加,以简化添加候选组件标识的步骤。
       应用程序构建任务可以定义当前项目自己的 META-INF/spring.components 文件。

       在编译时,源模型是 自包含的,JPA 实体和 Spring 组件是已被标记的。 从索引读取实体而不是扫描类路径对于小于 200 个类的小型项目是没有明显差异。但对大型项目影响较大。 加载组件索引开销更低。

       因此,随着类数的增加,索引读取的启动时间将保持不变。 加载组件索引的耗费是廉价的。因此当类的数量不断增长,加上构建索引的启动时间仍然可以维持一个常数, 不过对于组件扫描而言,启动时间则会有明显的增长。

       这个对于我们处于大型 Spring 项目的开发者所意味着的,是应用程序的启动时间将被大大缩减。虽然 20 或者 30 秒钟看似没什么,但如果每天要这样登上好几百次,加起来就够你受的了。使用了组件索引的话,就能帮 助你每天过的更加高效。

       你可以在 Spring 的 Jira 上了解更多关于组件索引的相关信息。

3.响应式编程风格:

       此次 Spring 发行版本的一个激动人心的特性就是新的响应式堆栈 WEB 框架。这个堆栈完全的响应式且非 阻塞,适合于事件循环风格的处理,可以进行少量线程的扩展。

        Reactive Streams 是来自于 Netflix, Pivotal, Typesafe, Red Hat, Oracle, Twitter 以及 Spray.io 的工程师特地开发的一个 API。

       它为响应式编程实现的实现提供一个公共的 API,好实现 Hibernate 的 JPA。这里 JPA 就是这个 API, 而 Hibernate 就是实现。 Reactive Streams API 是 Java 9 的官方版本的一部分。

       在 Java 8 中, 你会需要专门引入依赖来使 用 Reactive Streams API。 Spring Framework 5.0 对于流式处理的支持依赖于 Project Reactor 来构建, 其专门实现了 Reactive Streams API。

       Spring Framework 5.0 拥有一个新的 spring-webflux 模块,支持响应式 HTTP 和 WebSocket 客 户端。Spring Framework 5.0 还提供了对于运行于服务器之上,包含了 REST, HTML, 以及 WebSocket 风 格交互的响应式网页应用程序的支持。

       在 spring-webflux 中包含了两种独立的服务端编程模型: 基于注解:使用到了@Controller 以及 Spring MVC 的其它一些注解; 使用 Java 8 lambda 表达式的函数式风格的路由和处理。 有了 Spring Webflux, 你现在可以创建出 WebClient, 它是响应式且非阻塞的,可以作为 RestTemplate 的一个替代方案。

4.完全支持Junit5版本:

       完全支持 JUnit 5 Jupiter,所以可以使用 JUnit 5 来编写测试以及扩展。此外还提供了一个编程以及 扩展模型,Jupiter 子项目提供了一个测试引擎来在 Spring 上运行基于 Jupiter 的测试。

       另外,Spring Framework 5 还提供了在 Spring TestContext Framework 中进行并行测试的扩展。 针对响应式编程模型, spring-test 现在还引入了支持 Spring WebFlux 的 WebTestClient 集成测 试的支持,类似于 MockMvc,并不需要一个运行着的服务端。使用一个模拟的请求或者响应, WebTestClient 就可以直接绑定到 WebFlux 服务端设施。

       你可以在这里找到这个激动人心的 TestContext 框架所带来的增强功能的完整列表。 当然, Spring Framework 5.0 仍然支持我们的老朋友 JUnit! 在我写这篇文章的时候, JUnit 5 还 只是发展到了 GA 版本。对于 JUnit4, Spring Framework 在未来还是要支持一段时间的。

5.依赖类库的更新:

终止支持的类库 :

Portlet.

Velocity.

JasperReports.

XMLBeans.

JDO.

Guava.

支持的类库 :
Jackson 2.6+

EhCache 2.10+ / 3.0 GA

Hibernate 5.0+

JDBC 4.0+

XmlUnit 2.x+

OkHttp 3.x+

Netty 4.1+

你可能感兴趣的:(我的博客,spring,java框架,spring新特性)