4006-998-758
3000+课程任你选择
基于Spring架构与设计实现最佳实践
研发学院 开课时间:2021-07-02
刘兵

曾就职于 IBM 中国研发中心,任 WebSphere 软件架构师。

后加入 BEA 中国区专业服务部,任高级技术顾问、首席顾问、项目经理

主要负责 BEA 客户项目的架构设计和项目开发、技术支持,保证项目的成功实施、运行及维护。参加过全省、全国多个大型的计算机应用项目,涉及的行业领域包括电信、银行、 税务、社保等。 


查看老师详情
课程内容


课程简介


毋庸置疑,Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分Java 后端程序员在日常工作中也会接触到 Spring ,因此,如何用好 Spring ,也就成为 Java 程序员的必修课之一。

Spring是一个开源的轻量级的 Java 开发框架, 具有控制反转(IoC)和面向切面(AOP)两大核心。Java Spring 框架通过声明式方式灵活地进行事务的管理,提高开发效率和质量。Spring 框架不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 框架还是一个超级粘合平台,除了自己提供功能外,还提供粘合其他技术和框架的能力。

同时,Spring Boot 和 Spring Cloud 的出现,可以帮助工程师更好地基于 Spring 及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。

因此,Spring Boot 和 Spring Cloud 已成为 Spring 生态中不可或缺的一环。想成为一名合格的 Java 后端工程师,Spring Framework、Spring Boot、Spring Cloud 这三者必须都牢牢掌握。

这个课程通过实战项目,通过实战把所有零碎的知识点串联起来,通过即学即用的方式,让你把知识点掌握得更牢固,理解得更透彻。

同时,这门课将不仅带给你 Spring Framework、Spring Boot 与 Spring Cloud 的基本实战技巧,同时也会带你了解这些工具背后的关键机制与实现原理,真正做到活学活用。

微服务是一种分布式系统架构解决方案,推动细粒度服务的使用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域建模,所以避免了由传统的分层架构引发的很多问题。微服务也整合了过去十年来的新概念和技术,因此得以避开许多面向服务的架构中的陷阱。

鉴于此,本课程从实践的角度出发,首先阐述了单块架构存在的弊端以及微服务的理论基础。接着通过实践部分,让读者能够体验从零开始搭建第一个微服务的过程,包括代码静态检查、基础设施构建、 Docker映像构建及部署、持续交付流水线、服务的日志聚合以及监控和告警。随后,探讨在微服务的实践过程中所积累的经验,包括基于 HAL的通信机制、消费者驱动的测试,并通过一个真实的案例


课程大纲


主题

培训内容

备注

第1单元  Spring概述和Spring家族

内容一:Spring框架概念

1. Spring框架

2. Spring家族的主要成员

3. 跟着Spring了解技术趋势

4. 编写你的第一个Spring程序

内容二:Spring家族概述-Spring/SpringBoot/SpringClould

1. 从Spring到Spring Boot

2. Spring框架发展简史

3. Spring框架的核心模块

4. Spring Boot简介

5. Spring Boot是什么

6. Spring Boot核心模块

7. Spring Cloud与微服务概述

8. 什么是Spring Cloud

9. Spring Cloud模块介绍

10. Spring Cloud体系


第2 章Java企业架构原理

内容一:企业架构概念

1. 理解企业应用中的难题

2. 定义软件架构

3. 理解软件架构需求

4. 理解架构师的作用、责任和交付项目

5. 理解架构与设计之间的差别和相似点

内容二:软件架构的视图

1. 软件架构的视图原理

2. 软件架构视图的意义, 软件架构师的多维思考

3. 逻辑视图、开发视图、部署视图、运行视图、场景视图,数据视图 ,实现视图

4. 如何和怎样绘制软件架构视图

5. 典型案例分析

内容三:理解架构质量属性度量-

1. 描述企业应用的系统性度量

2. 描述用于改善系统性度量的一般做法

3. 对服务质量(QoS)的要求划分优先级

4. 检查是否存在良好的机遇,并进行权衡

5. 结合实际项目案例分析,质量属性的权衡

6. 系统架构的可扩展性设计策略

7. 系统架构的可靠性设计策略

8. 系统架构的高性能设计策略

9. 系统架构的可维护性设计策略

10. 系统架构的易用性设计策略

11. 系统架构质量属性和架构模式的应用

内容四:J2EE分层架构模式

1. J2EE架构模式

2. 表示层的设计原则和注意事项

3. 业务逻辑层的设计原则和最佳实践

4. 持久化层的设计原则和最佳实践

5. 基础服务架构层设计原则和最佳实践

6. 业务实体层的设计原则和最佳实践

7. 层之间数据的传输最佳实践


第3单元  Spring架构- 业务逻辑

内容一:业务逻辑层的架构

1. 理解有关使用企业应用容器服务的价值

2. 业务逻辑架构模式

3. 事务脚本模式

4. 领域驱动架构模式

5. 描述用于实施域模型服务的架构选项

6. 理解例外处理和日志的最佳做法

内容二:基于Spring业务逻辑层的架构

1. Spring轻量级容器技术

2. Spring的Ioc/DI技术

3. Spring的数据存取技术

4. Spring AOP技术

5. Spring在业务逻辑层的应用

6. Spring项目经验

内容三:java异常处理与Spring异常框架

1. Java异常处理

2. Java异常处理框架

3. spring异常处理机制

4. Spring全局异常处理

5. Spring的Ioc/DI技术

6. 异常处理方式一 @ExceptionHandler

7. 异常处理方式二. 实现HandlerExceptionResolver接口

8. 异常处理方式三. @ControllerAdvice+@ExceptionHandler

内容四:基于Spring业务逻辑层的架构

1. 如何接受参数并进行校验?

2. 日志如何记录?

3. 错误码如何返回?是否区分业务异常和系统错误?

4. 如何自定义业务异常?何时使用运行时异常、何时使用受检查异常?

5. 错误码使用CONSTANT变量还是使用枚举类型?

6. 如何进行合理的分层?mapper层、repo层、service层

7. 单元测试如何写

内容五:系统基础服务组件架构

1. 系统基础服务组件架构策略

2. 系统通用服务层与业务逻辑分离

3. 系统必备13种基础服务架构(异常处理/事务管理/缓存/工作流/校验/通信/安全/日志/定时触发/状态/消息通信/系统监控/配置管理)

4. 业务通用服务架构实现策略

5. 结合多个项目实例分析,架构师如何萃取基础服务组件和怎样设计实现


第4单元  Spring数据存取 

内容一:开发集成和资源层的架构

1. 描述与企业信息系统(EIS)集成相关的难题

2. 描述集成层的角色

3. 描述EIS资源层

4. 回顾Java集成技术和最佳做法,以及和其他系统集成

5. 数据存取架构模式

6. 数据存取架构技术发展

7. 数据存取架构的策略

8. 数据存取层事务和连接管理模式

内容二:基于Spring数据存取技术-JDBC

1. 使用JDBC读取和写入数据

2. 领域对象与数据库不匹配

3. JDBC核心概念

4. Spring JdbcTemplate存取技术

5. 定义模式和预加载数据

内容三:基于Spring数据存取技术-MyBatis

1. MyBatis快速入门

2. ORM简介

3. 常见持久化框架

4. MyBatis示例

5. MyBatis整体架构

6. MyBatis基础支持层

7. MyBatis核心处理层

8. MyBatis注解方式的基本用法

9. MyBatis动态SQL

10. MyBatis高级查询

11. MyBatis缓存配置

12. MyBatis与Spring集成

13. Mybatis-Spring剖析


第5单元  Spring事务控制

内容一:事务管理

1. 事务的概述

2. 本地事务和分布式事务JTA

3. 本地事务的管理的模式

4. 分布式事务管理的模式

5. 声明方式和编程方式事务管理

6. 事务,锁,并发

内容二:Spring事务管理机制

1. Spring事务概述

2. 数据库的4种隔离级别

3. Spring事务几种实现方式 

4. Spring编程式事务管理

5. PlatformTransactionManager事务管理

6. Spring声明书事务管理 

7. 基于 @Transactional 的声明式事务管理

8. Spring传播行为


第6单元-微服务架构设计开发实现—基于SpringBoot案例

内容一:微服务架构

1. 为什么需要微服务架构

2. 如何解决传统应用架构的问题

3. 微服务架构是什么

4. 微服务架构概念

5. 微服务架构参考架构模式

6. 通过分析多个微服务架构案例,了解微服务架构的参考模式

内容二:微服务架构开发实现---SpringBoot

1. Spring Boot概述

2. 部署Spring Boot应用程序

3. Spring Boot 的数据访问

4. Spring Boot 企业级开发

5. Spring Boot 开发部署与测试

6. 多个基于SpringBoot实际项目的架构分析(为何这样设计/优点/缺点/当初的考虑)


第7单元-微服务架构设计开发实现—基于SpringCloud

 

 

内容一:微服务架构与云架构--Spring Cloud平台

1. 云计算平台架构

2. 为什么选择Spring Cloud

3. Spring Cloud

4. 服务治理:Spring Cloud Eureka

5. 客户端负载均衡:Spring Cloud Ribbon

6. 服务容错保护:Spring Cloud Hystrix

7. 声明式服务调用:Spring Cloud Feign

8. 分布式配置中心:Spring Cloud Config

9. 消息总线:Spring Cloud Bus

10. 多个基于SpringBoot和SpringCloud云架构,谈微服务和云架构


第8单元--微服务注册与发现,服务路由,统一配置中心

内容一:微服务注册与发现

1. 为什么要服务注册

2. 服务注册实现方式

3. 使用NetflixEureka/SpringCloud实现服务注册

4. 使用NetflixRibbon/SpringCloud实现客户端负载均衡

5. 为什么要服务发现

6. 服务发现的实现方式

7. 使用Spring和Netflix Eureka进行服务发现实战

内容二:微服务负载均衡和路由,容错

1. 负载均衡

2. 容错

3. 服务路由

4. 微服务间的异步通信机制

5. Spring Clould 的Ribbon实现

内容三:分布式微服务统一配置中心

1. 管理配置(和复杂性)

2. 配置管理架构

3. 构建Spring Cloud配置服务器

4. 将Spring Cloud Config与Spring Boot客户端集成

5. 分布式配置中心——携程Apollo

6. 携程apollo优点

7. apollo架构

8. Apollo分布式配置中心部署

9. Apollo分布式配置中心最佳实践


第9单元--微服务网关和过载保护

内容一:微服务网关—Zuul

1. 使用Spring Cloud和Zuul进行服务路由

2. 什么是服务网关

3. Spring Cloud和Netflix Zuul简介

4. 在Zuul中配置路由

5. 动态重新加载路由配置

6. 构建第 一个生成关联ID的Zuul前置过滤器

7. 构建动态路由过滤器 

8. Zuul网关最佳实践

内容二:微服务断路器—Hystrix

1. 什么是客户端弹性模式 

2. 客户端负载均衡模式 

3. 断路器模式 

4. 后备模式 

5. 舱壁模式 

6. 使用Hystrix实现断路器 

7. 对组织微服务的调用超时

8. 定制断路器的超时时间

9. 线程上下文和Hystrix 

10. Hystrix最佳实践


第10单元  Spring大型分布式架构设计最佳实践

内容一:大型微服务分布式日志

1. 大数据日志系统的构建

2. 开源日志框架的原理分析与应用实践

3. ELK系统的构建与使用

4. Elasticsearch

5. Logstash

6. Kibana

7. 大数据日志系统的原理与设计

8. 日志系统的容量和性能评估

内容二:微服务分布式跟踪系统—大众点评CAT

1. 基于调用链的服务治理系统的设计与实现

2. 调用链跟踪的原理

3.  分布式系统的远程调用过程

4. Google Dapper实现

5. 大众点评CAT案例分析

6. CAT实现原理

7. CAT部署策略

8. CAT最佳实践

内容三:大型分布式架构核心概念

1. 典型大规模互联网系统架构

2. 可用性的概念以及设计准则

3. 扩展性的概念以及设计准则

4. 负载均衡的概念以及设计准?

5. 一致性的概念以及设计准则

6. 通过大量案例分析以上原则

内容四:降级设计与实践

1. 服务限流降级概念;

2. 服务限流降级使用业务场景;

3. 服务限流降级设计环节;

4. 服务限流降级之原则篇、架构篇、框架篇、业务篇;

5. 移动时代服务限流降级如何打造;

6. 我们的实践案例;

内容五:高可用性设计

1. 可用性一般度量

2. 可用性实践

3. 平均故障间隔时间(MTBF)

4. 平均修复时间

5. 错误和缺陷率

6. 高可用性原则 1: Remember Everything Fails

7. 高可用性原则 2: Automate Everything

8. 可用性最佳实践-1-错误检测

9. 可用性最佳实践-2-错误隔离/恢复/降级或掩盖

10. 可用性最佳实践-3-错误预防

11. 机器故障自动修复

12. 资源故障自动迁移

13. 服务故障容灾降级

14. 业务容量自动调整

15. 架构设计预防;


 

返回上一级