- UML图
- springboot核心流程源码
- springboot企业扩展最佳实践
自我测评:
- 基于spingboot,谈谈springloc底层原理:
- 三个平面的关系和创建过程
- appcontext和bean工厂平面的内部细节,怎么加载bean定义,和bean如何实例化、初始化
- 描述一下bean生命周期:
- 实例化bean的实现-反射;填充bean过程-循环依赖+三级缓存
- 调用aware接口,调用beanPostProcessor方法,调用initmethod方法
- spring是如何解决循环依赖的问题:
- 怎么产生的;实例化和初始化分离;流程
- BeanFactory与FactroyBean从底层源码层面解读它们的区别:
- 第三平面的源码实现
- 基于springboot,怎么进行插件开发:
- 扩展线
课程架构
UML-DEMO制作
spring到springboot演进
spring源码课程边界
三大平面
SpringApplication平面:Springboot.jar
前置处理
- 事件触发
- 环境配置
- 预装IOC
进入第二平面处理refreshContext()
- 后置处理
- 事件触发
- 异常处理
ApplicationContext平面:Springcontext.jar
完成bean定义加载
- 前置处理
- 第三平面的预处理
- 自动装配
- 第二平面事件触发
- 处理自动配置类、注解、扫包
- 完成bean定义加载
- 对bean定义的后置处理
- 对接tomcat
- 进入第三平面处理refreshContext()
- 前置处理
BeanFactory平面:springbean.jar
对所有bean定义轮询处理(完成bean的实例化)
- 三级缓存
- 创建bean
- 填充属性
- bean初始化
三大注解
容器内加组件
组件给属性
面向平面插件深度扩展
- 前两个平面以事件为主
- bean工厂平面扩展线分析
- 配置中心、属性注入
- 常见配件开发的注入点
面向技术组件化插件沉淀
某springboot框架组件分布
整体基于模块化快速服务开发(功能开箱即用,配置简单,测试简单)、多协议发布(支持HTTP,SOAP,DUBBO协议,一次编写多种协议调用,架构切换业务代码复用),内置各种监控指标的服务层开发框架。
服务开发及运行框架功能
开发流程
- 开发环境准备
- JDK1.8以上
- maven私服配置
- IDEA开发工具配置
- 业务功能建模
- 新建Maven工程
- 确定系统需要的组件
- 引入组件对应的starter
- 服务开发
- 编写InDto
- 编写服务接口
- 实现服务逻辑
- 配置相关组件
- 连接池配置
- mybatis配置
- 服务发布配置
- 测试
- 单元测试
- 打包运行
可视化监控
ps:
- 看源码经常用到类图和时序图两个UML图
- 针对bean实例化的beanfactory平面,常见扩展手段是:实现接口
- spring.factories的扩展机制是仿照java中的SPI思想