当前位置: 首页 > article >正文

Spring框架特性及包下载(Java EE 学习笔记04)

1 Spring 5的新特性

Spring 5是Spring当前最新的版本,与历史版本对比,Spring 5对Spring核心框架进行了修订和更新,增加了很多新特性,如支持响应式编程等。

更新JDK基线

因为Spring 5代码库运行于JDK 8之上,所以Spring 5对JDK的最低要求是JDK 8,这可以促进Spring的使用者积极运用Java 8新特性。

修订核心框架

(1)基于JDK 8的反射增强,通过Spring 5提供的方法可以更加高效的对类或类的参数进行访问。

(2)核心的Spring接口提供了基于JDK 8的默认方法构建的选择性声明。

(3)用@Nullable和@NotNull注解来表明可为空的参数以及返回值,可以在编译时处理空值而不是在运行时抛出NullPointerExceptions异常。

更新核心容器

Spring 5支持候选组件索引作为类路径扫描的替代方案。从索引读取实体类,会使加载组件索引开销更低,因此,Spring程序的启动时间将会缩减。

支持响应式编程

响应式编程是另外一种编程风格,它专注于构建对事件做出响应的应用程序。Spring 5包含响应流和Reactor(ReactiveStream的Java实现),响应流和Reactor支撑了Spring自身的功能及相关API。

支持函数式Web框架

Spring 5提供了一个函数式Web框架。该框架使用函数式编程风格来定义端点,它引入了两个基本组件: HandlerFunction和RouterFunction。HandlerFunction 表示处理接收到的请求并生成响应函数;RouterFunction替代了@RequestMapping注解,用于将接收到的请求转发到处理函数。

支持Kotlin

Spring 5提供了对Kotlin语言的支持。Kotlin是一种支持函数式编程风格的面向对象语言,它运行在JVM之上,可以让代码更具有表现力、简洁性和可读性。有了对Kotlin的支持,开发人员可以进行深度的函数式Spring编程,这拓宽了Spring的应用领域。

提升测试功能

Spring 5完全支持Junit 5 Jupiter,因此可以使用Junit 5编写测试代码。除此之外,Spring 5还提供了在Spring TestContext Framework中进行并行测试的扩展。针对响应式编程模型,Spring 5引入了支持Spring webFlux的WebTestClient集成测试。

2 Spring 框架下载

Spring是一个独立的框架,它不需要依赖任何Web服务器或容器,既可以在独立的Java SE项目中使用,也可以在Java EE项目中使用。在使用Spring之前需要获取它的jar包,这些jar包可以在Spring官网下载。

下载地址:Spring-5.2.8.RELEASE

下载完成后,将文件解压得到一个名为spring-framework-5.2.8.RELEASE的文件夹。

Spring目录结构

docs文件夹:该文件夹下存放Spring的相关文档,包括开发指南、API参考文档。

libs文件夹:该文件夹下存放开发所需的jar包和源码。整个Spring框架由21个模块组成,libs目录下Spring为每个模块都提供了三个压缩包,因此,libs文件夹下一共有63个jar包。这63个jar包分为三类。

schema文件夹:该文件夹下存放Spring各种配置文件的XML Schema文档。

在使用Spring开发时,除了要使用自带的jar包外,Spring的核心容器还需要依赖commons.logging的jar包。该jar包可以通过commons的官方地址下载。下载完成后,会得到一个名为commons-logging-1.2-bin.zit的压缩包。将压缩包解压到自定义目录后,即可找到commons.logging对应jar包commons-logging-1.2.jar。

下篇介绍

下篇文章会通过一个简单的入门程序演示Spring框架的使用,要求在控制台打印“您好,欢迎使用Spring”,敬请期待。


http://www.kler.cn/a/405714.html

相关文章:

  • Parker派克防爆电机在实际应用中的安全性能如何保证?
  • 3个月,2000+台虚机迁移成功!
  • 自由学习记录(23)
  • 经济增长初步
  • WPF如何全局应用黑白主题效果
  • Spring Boot核心概念:日志管理
  • SpringBoot与knife4j的整合使用
  • Spark RDD 的宽依赖和窄依赖
  • 2024年亚太数学建模竞赛问题C宠物产业及相关产业发展分析与对策
  • CEF127编译指南 Windows篇-安装Git和Python(三)
  • C语言深度剖析:定义与声明
  • Go-RPC关键指标分析与企业实践
  • Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失
  • 金融量化交易模型的突破与前景分析
  • PostGIS创建空间数据库步骤
  • .net6 使用 FreeSpire.XLS 实现 excel 转 pdf - docker 部署
  • 中国省级新质生产力发展指数数据(任宇新版本)2010-2023年
  • 单词的分类(二)冠词和数词
  • ANSYS HFSS仿真回流路径与跨分割布线
  • Go语言使用 kafka-go 消费 Kafka 消息教程
  • QA|使用 MapleSim 模拟卷料生产 (Converting)和卷对卷系统 (R2R)
  • Paper -- 洪水深度估计 -- 基于计算机视觉, 根据被淹车辆图像进行洪水深度估计
  • nginx 配置lua执行shell脚本
  • Linux ASLR
  • 【数据结构】—— 树
  • 从 HTML 到 CSS:开启网页样式之旅(开篇之一)——CSS 初体验与网页样式新征程