4006-998-758
3000+课程任你选择
基于Spring技术的JAVA的实战
研发学院 Spring技术 JAVA实战 开课时间:2023-09-27
小马哥

曾获得 SUN Java(SCJP、SCWCD、SCBCD)以及 Oracle OCA 等的职业认证。作为 Apache Dubbo PMC 和 Spring Cloud Alibaba 架构师之一,主要负责中间件开源项目、微服务架构衍进,以及 Cloud Native 基础设施建设,所参与的项目现已运行在数以百万级的集群服务器上。

除了日常编码工作,小马哥还时常发表一些技术前瞻性文章,比如:
《2019 中国 Java 发展趋势报告》
《Reactive programming 一种技术 各自表述》
《Dubbo Cloud Native 实践与思考》

查看老师详情
课程内容


Java 核心特性与性能优化


课程大纲

第一天上午:Java Core

第一部分 JDK 核心 API 总览(1 - 11)

· 主要内容

Java 基础类库:Java 语言(Lang)、数学(Math)、集合(Collections)、并发(Concurrency)和反射(Relfection)

Java 其他类库:Java I/O、Java Beans、序列化(Serialization)、管理扩展(JMX)和网络(Networking)

第二部分 Java API 实践

·主要内容

通用框架:介绍 JDK 中常见的工具方法,以及精选 Apache Commons 工程,减少重复劳动,提升开发效率和质量

集合框架:主要讨论 JDK 中常见的数据结构的使用场景以及常见问题,包括 Apache commons-collection

配置外部化:介绍从 Java SE 到 Java EE 配置外部化的实例,杜绝硬编码的方式,实现一套代码到处运行,并且结合流行的开源框架展开讨论,如 log4j(logback)、Spring Framework、Dubbo 等

 

第一天下午 Java API 设计

第一部分 Java 通用 API 设计

·主要内容

类/接口设计:介绍类、抽象类、接口命名、访问性设计以及“封装性、派生性、多态性”技巧

枚举设计:理解枚举引入的意义以及变化,介绍 JDK 中常见枚举的设计

泛型设计:了解泛型使用场景以及限制,通过 JDK 以及开源项目领悟其中的设计模式

方法设计:介绍方法命名、返回类型、参数类型、名称以及数量的设计模式

函数式设计:讨论函数式设计技巧,如 Supplier、Consumer 以及 Function 在日常开发中的运用

模块设计:Java 9 模块化类库迁移、依赖管理分析、迁移案例等、模块解析、模块API 设计

第二部分 Java 设计模式

·主要内容

GoF 23 设计模式:通过实例和开源实现的方式讲解 GoF 23 设计模式

扩展设计模式:Fluent 、Reactive、Stream、模块驱动等设计模式

开源框架的设计模式:介绍 Spring Framework 对 GoF 23 设计模式的运用,以及其特殊的,简介 Catalina 引擎设计、JSP 模板解析引擎 - Jasper 设计

 

第二天上午:Java 并发框架(J.U.C)实践

·主要内容

Java 并发锁:介绍包括重进入锁(ReentrantLock)、重进入读写锁(ReentrantReadWriteLock)、邮票锁(StampedLock)等运用

Java 原子操作:理解 Atomic* API 以及 *Adder API 使用场景

Java 并发限制:包括 CountDownLatch、CyclicBarrier 以及 Semaphore

Java 线程池:掌握 Executor、ThreadPoolExecutor 、ScheduledExecutorService 以及 Callable 和 Future API 正确使用

 

第二天下午:Java 并发原理

·主要内容

Java 同步原语:从 JDK 级别到 JVM 级别,深度分析和理解 Java synchronized 、volatile 以及 CAS 操作等同步原语

Java 内存模型:理解 Happens-before 、以及内存屏蔽在 Java 实践中的运用

Java 并发 AQS 原理:通过分析 Java 线程池实现理解 AQS 实现原理

 

第三天上午:JVM 原理

第一部分 Java 类加载和内存管理

·主要内容

Java Class:讲解 Java Class 解析、校验以及加载的过程

Class 与 ClassLoader 之间的关系:通过源码级别理解 Class 与 ClassLoader 之间的关系

ClassLoader 双亲委派原理:通过底层实现理解双亲委派的设计和局限性

Java 类存储:Java 类对象存储细节

Java 内存区域:介绍 Java 内存区域的组成,深入讨论 Java Heap、方法区、JVM Stack 等职责范围以及设计目的

第二部分 Java 垃圾回收器调优

·主要内容

Serial 收集器特征和调优

Parallel 收集器特征和调优

CMS 收集器特征和调优

G1 收集器特征和调优

 

第三天下午:Java Trouble-Shooting

第一部分 Java 故障案例分析

·主要内容

CPU 过高案例:介绍高消耗CPU代码的常用分析方法,逐一排查可能性

GC 案例:介绍 Young GC 和 Full GC 的基本表象,以及如何在代码实现中尽可能地避免 Full GC

·主要内容

OOM 错误案例:分析 Java 内存泄露的症状,以及快速定位泄露位置(堆、Perm 或 Metasapce)以及解决方案

诊断 JVM Crash :介绍 Java 内存泄露引起的 JVM 进程 Crash 的现象和排查手段

诊断 Java 代码:讨论由 Java 代码引起的 Java 内存泄漏的特征以及如何借助诊断工具定位问题代码

诊断 Native 代码:讨论由 Java Native 代码引起的 Java 内存泄漏的特征以及如何借助诊断工具定位问题代码

第二部分 Java 运维工具

·主要内容

工具介绍:Java 进程工具(jps)、线程 dump 工具(jstack)、内存 dump 工具(jmap)、Java 调试工具(jdb)、图形化工具(jmc、jvisualvm、jconsole)

工具与JMX:理解 JMX 运维 JVM 的适用范围,以及它与运维工具之间的关系

Java Tools API:介绍 Java 编译器、Java Attatch API、Java Dump API 以及对象查询语言(OQL)

 

第四天上午:应用优化

第一部分 关系型数据库优化

·主要内容

数据库优化:慢 SQL 查询和分析,索引优化、数据垂直拆分、水平拆分

JDBC 事务:JDBC 事务原理以及 EJB 和 Spring 事务实现

JDBC 优化:数据库连接池选型,PreparedStatement 性能优化以及 MyBatis 和 JPA 最佳实践

第二部分 分布式优化

·主要内容

缓存优化:解决缓存并发、缓存穿透以及缓存雪崩问题

分布式锁:理解和实现分布式锁(基于 Zookeeper 和 Redis)

分布式事务:理解分布式事务原理,合理地选型实现

 

第四天下午:分布式优化

第一部分 Web 优化

·主要内容

异步 Web:异步 Servlet 提升系统吞吐量

分布式 Session:实现分布式 Session 实现单点登录

第二部分 其他优化

·主要内容

异步优化:使用并发框架实现异步特性

日志优化:比较 Java Logging、logback、Log4j 1 和 2 的特点和优势,合理地使用日志

I/O 优化:文件锁、修改通知,零拷贝等优化手段

网络优化:合理地设置 Socket 连接数量、TCP 网络参数优化

内存优化:理解 OS OOM 原理,堆外内存、虚拟内存等合理使用


Spring 设计模式


课程大纲

第一天:GoF 23 设计模式以及扩展模式

第一节:构建模式(Creational patterns)

·GoF 23 设计模式

·抽象工厂模式(Abstract factory)

·构建器模式(Builder)实现

·工厂方法模式(Factory method)

·原型模式(Prototype)

·单例模式(Singleton)

·扩展设计模式

·依赖注入(Dependency Injection)

·延迟初始化(Lazy initialization)

·多例模式(Multiton)

·对象池(Object pool)

·资源获取即初始化(Resource Acquisition Is Initialization)

 

第二节:结构模式(Structural patterns)

·GoF 23 设计模式

·适配器模式(Adapter)

·组合模式(Composite)

·装饰器模式(Decorator)

·享元模式(Flyweight)

·代理模式(Proxy)

·扩展设计模式

·前端控制器模式(Front controller)

·标记器模式(Marker)

·模块化模式(Module)

  

第三节:行为模式(Behavioural patterns)

·GoF 23 设计模式

·责任链模式(Chain of Responsibility)

·命令模式(Command)

·解释器模式(Interpreter)

·迭代器模式(Iterator)

·中继器模式(Mediator)

·备忘录模式(Memento)

·观察者模式(Observer)

·状态模式(State)

·策略模式(Strategy)

·模板方法模式(Template Method)

·访问者模式(Visitor)

 

第二天:Spring Framework 设计模式实现

第一节:构建模式(Creational patterns)

·抽象工厂模式(Abstract factory)实现 - BeanFactory 等

·构建器模式(Builder)实现 - BeanDefinitionBuilder 等

·工厂方法模式(Factory method)实现 - FactoryBean 等

·原型模式(Prototype)实现 -

·单例模式(Singleton)实现

·依赖注入(Dependency Injection)实现 - @Autowired 和 @Resource 等

·延迟初始化(Lazy initialization)实现 - ObjectProvider 等

·多例模式(Multiton)实现 - PropertySource 等

·对象池(Object pool)实现 -

·资源获取即初始化(Resource Acquisition Is Initialization)实现 - @PostConstruct 和 InitializingBean 等

 

第二节:结构模式(Structural patterns)

·适配器模式(Adapter)实现 - AdvisorAdapter 等

·组合模式(Composite)实现 - CompositeCacheManager 等

·装饰器模式(Decorator)实现 - DelegatingFilterProxy 等

·享元模式(Flyweight)实现 - DefaultConversionService 等

·代理模式(Proxy)实现 - ProxyFactory 等

·前端控制器模式(Front controller)实现 - DispatcherServlet 等

·标记器模式(Marker)实现 - Aware 等

·模块化模式(Module)实现 - @EnableTransactionManagement 等

 

第三节:行为模式(Behavioural patterns)

·责任链模式(Chain of Responsibility)实现 - HandlerInterceptor 等

·命令模式(Command)实现 - RestTemplate 等

·解释器模式(Interpreter)实现 - BeanExpressionResolver 等

·迭代器模式(Iterator)实现 - PropertySources 等

·观察者模式(Observer)实现 - ApplicationEvent 等

·状态模式(State)实现 - DefaultListableBeanFactory 等

·策略模式(Strategy)实现 - InstantiationStrategy 等

·模板方法模式(Template Method)实现 - JdbcTemplate 等

·访问者模式(Visitor)实现 - MethodVisitor 等


Spring技术实战


课程大纲

第一天上午:Spring Framework 实战

第一节:Spring IoC 容器

·主要内容

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

·主要内容

AOP 简介:介绍 AOP 的基本概念,包括切面、切入点、通知等,讲解 Spring AOP 实现方式以及理解 Spring AOP 代理机制

基于注解的 AOP 支持:在 Spring 上下文激活 @AspectJ  ,以及注解的方式申明切面、切入点、通知等

基于 XML 的AOP 支持:基于 AOP Schema 在 XML 配置文件的方式,申明和使用切面、切入点、通知等

Spring AOP API:包括 切面、切入点、通知、ProxyFactory以及ProxyFactoryBean等API


第三节:Spring Web MVC 框架

·主要内容

Spring Web MVC 实战:详细说明DispatcherServlet、@Controller和@RequestMapping的基本原理、@RequestParam、@RequestBody和@ResponseBody使用方式、以及它们之间关系

映射处理:介绍DispatcherServlet与RequestMappingHandlerMapping之间的交互原理,HandlerInterceptor的职责以及使用

异常处理:介绍DispatcherServlet中执行过程中,如何优雅并且高效地处理异常的逻辑,如归类处理以及提供友好的交互界面等


第一天下午:Spring Boot 核心原理

第一节:Web 应用

·主要内容

REST 服务端实践:Spring Boot REST 应用、HATEOAS 应用、文档生成等

Servlet on Spring Boot :在 Spring Boot 环境下,开发和注册,以及部署Servlet 组件

Spring Web MVC 处理流程:立即 Web MVC 处理服务端渲染以及 REST 处理细节


第二节:数据整合

·主要内容

SQL:JDBC、JPA、ORM

事务管理:Spring 事务处理、分布式事务

NoSQL:分布式 Redis 缓存应用

缓存:Java Cache、Spring Cache 应用


第三节:Spring Boot 特性

·主要内容

自动装配:原理讲解、源码解读

嵌入式容器:装配嵌入式 Tomcat

生产准备:介绍 Spring Boot Actuator 特性

Spring Boot Starter:全面系统地介绍Spring Boot Starter的开发

开发经验:根据实际的经验,分享相关的开发注意事项


第二天上午:Spring Cloud 服务治理基础

第一节:服务发现/注册

·主要内容

Eureka 客户端:介绍 Spring Cloud Discovery 结合 Netflix Eureka 客户端的基本使用方法,包括服务发现激活、Eureka 客户端注册配置 以及 API 使用等

Eureka 服务器:介绍 Eureka 服务器作为服务注册中心的搭建方法,以及內建 Dashboard 基本运维手段


第二节:配置管理

·主要内容

Bootstrap 配置属性:解密 Bootstrap 配置属性与 Spring Framework / Spring Boot 配置架构的关系,介绍如何调整 Bootstrap 配置文件路径、覆盖远程配置属性、自定义 Bootstrap 配置以及自定义 Bootstrap 配置属性源

Environment 端点:介绍/env 端点的使用场景,并且解读其源码,了解其中奥秘

Apollo :掌握 客户端 API 使用,理解 Apollo 服务端架构设计


第三节:负载均衡

·主要内容

理论基础:简介负载均衡客户端和服务端的相关理论,包括调度算法:如先来先服务、轮训、多级队列等。基本特性:非对称负载、健康检查、优先级队列等

整合Netflix Ribbon:作为 Spring Cloud 客户端负载均衡实现 ,Netflix Ribbon 提供了丰富的组件,包括负载均衡器、负载均衡规则、PING 策略等,根据前章所积累的经验,实现客户端负载均衡

RestTemplate 部分:解读 RestTemplateCustomizer 设计意图、处理逻辑以及请求拦截实现

客户端部分:解读@LoadBalanced 实现原理以及最终实际请求的相关实现

负载均衡部分:解读负载均衡上下文、负载均衡器、负载均衡规则、PING 策略等相关实现


第二天下午:Spring Cloud 治理高阶

第一节:服务熔断

·主要内容

核心理念:介绍服务短路的名词由来、目的,以及相关的类似慨念。随后讲述其中设计哲学、触发条件、处理手段以及客户端和服务端实现方法

Netflix Hystrix:Netflix Hystrix 作为 Spring Cloud Hystrix 底层实现,结合 RxJava 框架进行实现,如核心接口HystrixCommand,属性设置HystrixCommandProperties以及配置信息HystrixConfiguration等

Spring Cloud Hystrix:详细解读@EnableCircuitBreaker 处理过程,以及@HystrixCommand AOP 拦截实现等


第二节:服务网管

·主要内容

架构设计:Spring Cloud Gateway 服务网关

底层底层:Spring Cloud Gateway 底层实现

生态整合:Spring Cloud Gateway 与负载均衡、熔断以及监控等


第三节:服务跟踪和调度

·主要内容

服务跟踪基础:理解 Dapper 服务跟踪理论,理解 Spring Cloud Sleuth 设计

分布式调用链:整合 SkyWalking 理解,Java 探针机制

分布式任务调度:XXL-JOB 使用、架构和核心原理


第三节:服务监控

·主要内容

服务监控理论:微服务系统进程监 以及 Spring Boot Actuator 架构体系

Metrics 指标监控:理解 Spring Boot Metrics 以及底层 Micrometer 的实现

图形化监控:Spring Cloud Actuator 整合 Prometheus 实现,并使用 Grafana 查看监控大盘


返回上一级