课程简介
毋庸置疑,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. 架构设计预防; |