博客
关于我
Spring源码 21 Bean生命周期
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Bean 的生命周期示意图(存在循环依赖和 AOP) 执行创建 Bean protected Object doCreateBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationE......
阅读量:37194 次
2020-08-01 07:19:55
Spring源码 20 手写模拟源码
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 项目地址 模拟 Spring 注解 自动装配 Autowired @Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface Autowired {} 组件 Component @Target(Element......
阅读量:37194 次
2020-08-01 07:19:27
Spring源码 19 IOC getBean
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 前面实现了 ClassPathXmlApplicationContext 的构造,接下来分析其调用的 getBean 方法。 以 getBean(UserDao.class) 为例。 1 AbstractApplicationContext public <T> T getBean(Class<T> re......
阅读量:37194 次
2020-08-01 07:18:59
Spring源码 18 IOC refresh方法13
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 13 个:resetCommonCaches。 1 AbstractApplicationContext 1-1 清空缓存 resetCommonCa......
阅读量:37194 次
2020-08-01 07:18:30
Spring源码 17 IOC refresh方法12
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 12 个:finishRefresh。 1 AbstractApplicationContext 1-1 完成刷新过程 finishRefresh()......
阅读量:37194 次
2020-08-01 07:18:02
Spring源码 16 IOC refresh方法11
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 11 个:finishBeanFactoryInitialization。 1 AbstractApplicationContext 1-1 初始化剩......
阅读量:37194 次
2020-08-01 07:17:34
Spring源码 15 IOC refresh方法10
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 10 个:registerListeners。 1 AbstractApplicationContext 1-1 注册监听器 registerList......
阅读量:37194 次
2020-08-01 07:17:06
Spring源码 14 IOC refresh方法9
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 9 个:onRefresh。 1 AbstractApplicationContext 1-1 特定刷新 onRefresh() protected ......
阅读量:37194 次
2020-08-01 07:16:38
Spring源码 13 IOC refresh方法8
本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 8 个:initApplicationEventMulticaster。 1 AbstractApplicationContext 1-1 初始化应用消息广播器 initApplicationEventM......
阅读量:37194 次
2020-08-01 07:16:10
Spring源码 12 IOC refresh方法7
本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 7 个:initMessageSource。 1 AbstractApplicationContext 1-1 初始化 message 源 initMessageSource() protected vo......
阅读量:37194 次
2020-08-01 07:15:42
Spring源码 11 IOC refresh方法6
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 6 个:registerBeanPostProcessors。 1 AbstractApplicationContext 1-1 注册 Bean 增强......
阅读量:37194 次
2020-08-01 07:15:14
Spring源码 10 IOC refresh方法5
本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 5 个:invokeBeanFactoryPostProcessors。 1 AbstractApplicationContext 1-1 执行 Bean 工厂的增强器 invokeBeanFactory......
阅读量:37194 次
2020-08-01 07:14:45
Spring源码 09 IOC refresh方法4
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 4 个:postProcessBeanFactory。 1 AbstractApplicationContext 1-1 定义 Bean 工厂的增强器......
阅读量:37194 次
2020-08-01 07:14:17
Spring源码 08 IOC refresh方法3
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 3 个:prepareBeanFactory。 1 AbstractApplicationContext 1-1 对 BeanFactory 进行功能......
阅读量:37194 次
2020-08-01 07:13:49
Spring源码 07 IOC refresh方法2
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 2 个:obtainFreshBeanFactory。 1 AbstractApplicationContext 1-1 创建容器对象 obtainF......
阅读量:37194 次
2020-08-01 07:13:21
Spring源码 06 IOC refresh方法1
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法。 其中一共有 13 个主要方法,这里分析第 1 个:prepareRefresh。 1 AbstractApplicationContext 1-1 刷新前的准备工作 prepareRefres......
阅读量:37194 次
2020-08-01 07:12:53
Spring源码 05 IOC 注解方式
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 主要有两种实现方式:XML 和注解。 Spring 3.0 推出了注解注入,成为了现在的主流,也是官方推荐的。 这里分析注解方式。 AnnotationConfigApplicationContext(AppConfig.class) AppConfig package cn.sai......
阅读量:37194 次
2020-08-01 07:12:25
Spring源码 04 IOC XML方式
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 Spring IOC 主要有两种实现方式:XML 和注解。 这里分析 XML 方式。 ClassPathXmlApplicationContext("applicationContext.xml") 配置文件 首先看解析的对象:配置文件。 <?xml version="1.0" encoding="UTF......
阅读量:37194 次
2020-08-01 07:11:57
Spring源码 03 IOC原理
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 总流程 基本接口 IOC 容器两种实现方式:BeanFactory 和 ApplicationContext。 BeanFactory 容器的根接口,也是容器的入口。 Spring 内部使用的接口,不推荐开发人员使用。 加载配置文件的时候不会创建对象,在获取对象(使用)才去创建对象。 必须遵循完成的创建过......
阅读量:37194 次
2020-08-01 07:11:28
Spring源码 02 项目搭建
参考源 《Spring源码深度解析(第2版)》 版本 本文章基于 Spring 5.3.15 环境信息 JDK 17.0.2 Gradle 7.4 IntelliJ IDEA 2021.3.2 获取项目 GitHub 搜索 访问 GitHub 官网: 输入 spring 选择 spring-projects / spring-framework Spring 官网跳转 访问 Spring 官网: ......
阅读量:37194 次
2020-08-01 07:11:00