课程简介
无论是互联网、云计算还是大数据,Java平台已成为全栈的生态体系,其重要性几乎不可替代。除传统 Java EE 技术以外,Spring Framework 是一个 Java/Java EE/.NET 的分层应用程序框架。该框架基于 Expert One- on-One Java EE Design and Development 一文中的代码,并最初由 Rod Johnson 和 Juergen Hoeller et al 开发。在 One-on-One 一书中, Rod Johnson 倡导 J2EE 实用主义的设计思想,并随书提供了一个初步的开发框架实现( interface21 开发包) 。而Spring Framework 正是这一思想的更全面和具体的体现。 Rod Johnson 在 interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开 放、清晰、全面、高效的开发框架。
结合 Java 8 ,最新的 Spring Framework 5 引入了 WebFlux 技术,将异步 Web 编程模型提升到了一个全新的高度,即 Reactive 模式。
同时,内容还涵盖目前最流行 Spring 技术,包括 Spring Boot、Spring Cloud、Spring Cloud Stream 等系列,其目的希望能够帮助初学者深入浅出地掌握,同时更希望为高阶从业人员起到抛砖引玉的作用。
课程说明
本系列课程包含最新 Spring Framework 5 技术,采用理论结合实践的方式,实战教学。
课程类型
核心:标记为此类的课节说明为核心功能,重点内容。有助于加深技术理解和提升解决实际工作的能力
可选:说明当前内容在实际场景下,出现和使用的机会较少,可视作非重点关注
高阶:相对于"核心",更高阶段内容,更加专注于技术实现细节,提高技术广度和深度。有助于未来的纯技术岗位的工作
课程大纲
1. 核心技术
Spring IoC 容器
● 时间:45 分钟
● 主要内容
◆ IoC 与 DI :介绍 IoC(控制反转)原理、以及 依赖注入(DI)
Bean :Bean 的命名、Bean 的构造、Bean 的作用域、Bean 的生命周期,以及 Bean 的定义
◆ 配置:XML 配置方式、Annotation 配置方式以及 Java 配置方式
◆ 组件管理:组件扫描和管理,介绍@Component和其 stereotype Annotation
◆ Environment 抽象:介绍Environment、PropertySource接口和@PropertySource注解,以及占位符的运用
◆ ApplicationContext:介绍 Spring 应用上下文ApplicationContext以及其派生接口使用场景
◆ BeanFactory:介绍 Spring Bean 管理接口 BeanFactory
Spring AOP
● 时间:90 分钟
● 主要内容
◆ AOP 简介:介绍 AOP 的基本概念,包括切面、切入点、通知等,讲解 Spring AOP 实现方式以及理解 Spring AOP 代理机制
○ 基于注解的 AOP 支持:在 Spring 上下文激活 @AspectJ ,以及注解的方式申明切面、切入点、通知等
◆ 基于 XML 的AOP 支持:基于 AOP Schema 在 XML 配置文件的方式,申明和使用切面、切入点、通知等
◆ Spring AOP API:包括 切面、切入点、通知、ProxyFactory以及ProxyFactoryBean等API
2. 数据部分
Spring 对象关系映射(ORM)
● 类型:核心
● 时间:60 分钟
● 主要内容
◆ Hibernate:装配 Hiberante SessionFactory Bean、使用底层 Hibernate API 实现 DAO、理解 Hibernate 事务管理(HibernateTransactionManager)
◆ JPA:理解 JPA 核心接口EntityManagerFactory、EntityManager、@PersistenceContext。装配和实践 JPA 实现 Hibernate
◆ JPA 事务管理:使用 Spring Framework 驱动 JPA 事务,并且理解 JTA 体系
Spring 事务管理
● 类型:高阶
● 时间:60 分钟
● 主要内容
◆ Spring 事务管理:理解 Spring Framework 事务管理抽象、事务传播、事务同步资源和 Spring Framework 事务编程模型
◆ 申明式事务管理:理解 Spring Framework 申明式事务管理 ,以及与 Spring AOP 之间的关系
◆ 编程式事务管理:使用TransactionTemplate、PlatformTransactionManager和TransactionDefinition实现类实现编程式事务管理
3. Web 部分
Spring Web MVC 框架
● 时间:60 分钟
● 主要内容
◆ Spring Web MVC 介绍:整体介绍 Spring Web MVC 框架设计思想、功能特性、以及插播式实现
◆ Spring Web MVC 实战:详细说明DispatcherServlet、@Controller和@RequestMapping的基本原理、@RequestParam、@RequestBody和@ResponseBody使用方式、以及它们之间关系
◆ 映射处理:介绍DispatcherServlet与RequestMappingHandlerMapping之间的交互原理,HandlerInterceptor的职责以及使用
◆ 异常处理:介绍DispatcherServlet中执行过程中,如何优雅并且高效地处理异常的逻辑,如归类处理以及提供友好的交互界面等
◆ 文件上传:介绍通用 Spring Web MVC 的文件处理方式,以及借助 Servlet 3.0 规范的MultipartConfigElement 协同处理
Spring 5新特性 - WebFlux
● 时间:60 分钟
● 主要内容
◆ Reactive 编程:一种新型的关于非阻塞、异步以及事件驱动的编程模式,只需要少数线程实现伸缩的目的
◆ Spring WebFlux 总览:重新定义了传统 Spring Web MVC @Controller和@RequestMapping的编程模式,利用 Servlet 3.1 容器以及 Jetty 框架等异步非阻塞的特征,结合 Reactive Streams 规约,实现高效 Web 编程的目的
◆ Spring WebFlux 实践:实战演练 Spring Web Reactive 服务端和客户端
4.Spring 微服务部分
Spring Boot
● 时间:60 分钟
● 主要内容
◆ 自动装配:原理讲解、源码解读
◆ 嵌入式容器:装配嵌入式 Tomcat
◆ Production-Ready :外部化配置、Spring Boot Actuator
Spring Cloud
● 时间:60 分钟
● 主要内容
◆ 整体架构介绍
◆ 分布式配置管理:配置客户端(Bootstrap 配置属性、Environment 抽象)以及配置服务器(动态配置属性、内置分布式配置服务器)
◆ 服务治理:服务发现/注册(Netflix Eureka 客户端、服务器、Eureka 集群搭建)、负载均衡(RestTemplate 扩展、Netflix Ribbon 整合)、服务熔断(Spring Cloud Hystrix)、服务调用(申明式客户端 Spring Cloud Feign)以及 API 服务网关(Netfix Zuul)