背景
开始时间:2019/09/18 21:30
Spring5高级编程
版次:2019-01-01(第5版)
Spring5最新版本:5.1.9 CURRENT GA
目录
第1章 Spring介绍
1.1. 什么是Spring
Spring被描述为构建Java应用程序的轻量级框架。
轻量级指的并不是类的数量或发布的大小,而是整体性定义Spring原则:最轻的影响。
1.1.1. Spring框架的演变
Spring 4.0x 是第一个完全支持Java8的版本,最低要求Java6。
Spring 5.x 基于Java8,与Java9完全兼容。
第2章 入门
2.1 获取Spring框架
2.1.1 快速入门
版本2.0.0.RELEASE之前的Spring Boot版本使用Spring4.x版本。
2.2 了解Spring打包
2.2.3 使用Gradle访问Spring模块
从版本4.x
开始,Spring团队转向使用Gradle
来配置
从Spring3.0开始,开发Spring应用程序时不再需要XML配置文件。可以将它们替换为注解和配置类。
ClassPathXmlApplicationContext
从配置文件中读取bean定义。AnnotationConfigApplicationContext
从配置类读取bean定义。
第3章 在Spring中引入IoC和DI
第4章 详述Spring配置和Spring Boot
第5章 Spring AOP
第6章 Spring JDBC支持
第7章 在Spring中使用Hibernate
目前一直使用的是Mybatis,暂不学习Hibernate
第8章 在Spring中使用JPA 2进行数据访问
在Hibernate之后,JCP开发了Java数据对象(JDO)标准,然后开发了JPA。
Hibernate是JPA的一种实现,Mybatis不是。都属于ORM框架。
一直使用的是Mybatis,暂不学习JPA。
第9章 事务管理
第10章 使用类型转换和格式化进行验证
第11章 任务调度
第12章 使用Spring远程处理
第13章 Spring测试
13.1 测试类别介绍
13.2 使用Spring测试注解
Spring提供了特定于测试的注解:
这一章没有仔细学习,一方面平时开发中测试不重要,另一方面内容讲的比较浅,以后可以深入学习JUnit
和Spring-Test
项目
第14章 Spring中的脚本支持
14.1 在Java中使用脚本支持
从Java6开始,JSR-223就被捆绑到JDK中,目的是提供一种标准机制,进而在JVM上运行其他脚本语言编写的逻辑。脚本支持类在javax.script
包中。
14.2 Groovy介绍
Groovy
创建的主要目的是为JVM提供灵活的动态语言,构建在Java基础之上,弥补了Java中的一些缺陷。Groovy的动态类型支持为处理应用程序逻辑中的类属性和变量提供了更大的灵活性。Groovy支持闭包。支持DSL。DSL
是针对特定领域的语言,其目的是建议李忠不仅可以被开发者理解,也可以被业务分析师和用户理解的语言。
这一章没有认真学习,开发中目前没见到过,可以深入学习一下Groovy
第15章 应用程序监控
JMX
(Java Management Extensions):Java管理扩展
在JMX中,公开用于JMX监控和管理的类被称为托管bean(通常成为MBean
)。Spring框架支持多种公开MBean的机制。
没认真学习,可以深入学习JMX,spring-boot-starter-actuator
第16章 Web应用程序
第17章 WebSocket
17.1 WebSocket介绍
WebSocket
是作为HTML5计划的一部分而开发的一种规范,可以实现在客户端和服务器之间发送消息的全双工单套接字连接。
WebSocket协议旨在取代所有现有的使用HTTP作为传输的双向通信方法。
WebSocket协议由两部分:首先是客户端和服务器之间的握手,然后是数据传输。WebSocket连接是在客户端和服务器之间的初始握手期间,通过在相同的底层TCP/IP连接上发出从HTTP到WebSocket协议的升级请求来建立的。在通信的数据传输部分,客户端和服务器都可以同时向双方发送消息。
17.2 与Spring一起使用WebSocket
从Spring4开始,Spring框架支持WebSocket样式的消息传递以及STOMP
作为应用程序级别的子协议。在框架内,可以在spring-websocket
模块中找到对WebSocket的支持,该模块与JSR-356(Java WebSocket)兼容。
并非所有的Web浏览器都支持该协议,Spring通过Sock JS协议提供了透明的后备选项。
WebSocket本身是一个简单的将字节转换为消息的低级协议。
鉴于WebSocket的单一套接字特性及其提供连续双向数据流的能力,WebSocket非常适用于需要高频率消息传递和低延迟通信的应用程序。可使用WebSocket的应用程序包括游戏、实时群组协作工具、消息传递系统、时间敏感的定价信息等。
17.3 使用WebSocket API
当使用Spring的WebSocket API时,通常需要实现org.springframework.web.socket.WebSocketHandler
接口或使用便利的子类。
通过实现org.springframework.web.socket.config.annotation.WebSocketConfigurer
接口来配置WebSocket请求处理。
@EnableWebSocket
17.4 使用STOMP发送消息
在使用WebSocket时,通常会使用STOMP等子协议作为客户端和服务器之间的通用格式,以便客户端和服务器都知道应该发生什么并做出相应的反应。Spring框架支持STOMP。
STOMP
是一种简单的基于帧的消息传递协议(建立在HTTP基础之上),可用于任何可靠的双向流网络协议,比如WebSocket。
第18章 Spring项目:批处理、集成和XD等
18.1 Spring Batch
Spring Batch是一个批处理框架,构建在核心Spring框架上。
Spring Batch提供了作业缩放和并行处理的能力。
18.2 JSR-352
Spring Batch完全支持JSR-352(针对Java平台的批处理应用程序)。
18.3 Spring Boot Batch
Spring Boot为Spring Batch提供一个启动器。
18.4 Spring Integration
Spring Integration项目提供了企业集成模式(Enterprise Integration Pattern,EIP)的开箱即用型实现。侧重于消息驱动架构,为集成解决方案、异步功能和松耦合组件提供了一个简单的模型,并且它是为可扩展性和可测试性而设计的。
18.5 Spring XD
Spring XD是一个可扩展的运行时服务,专为分布式数据采集、实时分析、批处理和数据导出而设计。Spring XD基于许多现有的Spring组合项目,主要是Spring Framework、Spring Batch和Spring Integration。Spring XD的目标是提供一种统一的方式,用以将许多系统集成到一个统一的大数据解决方案中,从而帮助减少许多常见用例的复杂性。
18.6 Spring框架的五个最显著的功能
18.6.1 功能性Web框架
功能型Web框架(spring-webflux模块)是对Spring MVC的反应式补充,他提供一个针对异步API设计的Web编程模型。该框架是根据反应式编程原则构建的。
18.6.3 JDK模块化
JDK模块化被认为是Java9最大的改进之处。模块化功能被称为Project Jigsaw
。
18.6.5 Spring支持JUnit 5 Jupiter
JUnit Jupiter是新的编程模型和扩展模型的组合,用于在Junit5中编写测试和扩展。JUnit子项目提供了一个TestEngine,用于在平台上运行基于Jupiter的测试。