
Spring 源码分析
文章平均质量分 82
Spring 源码分析
959y
奋斗ing
展开
-
[SpingBoot] 3个扩展点
初始化器ApplicationContextInitializer和监听器ApplicationListener和Runner的SpringBoot的3个扩展点原创 2024-01-27 20:32:19 · 478 阅读 · 0 评论 -
[SpringCloud] SpringCloud配置中心的核心原理
SpringCloud中配置中心的核心原理原创 2023-11-27 20:48:20 · 1048 阅读 · 0 评论 -
[Spring] @Configuration注解原理
Spring源码之@Configuration注解原理原创 2023-09-05 16:09:13 · 479 阅读 · 0 评论 -
Spring源码分析 (Spring启动过程之容器对象的创建) (十五)
spring 源码分析之启动过程的容器对象的创建过程原创 2023-01-30 19:19:02 · 1245 阅读 · 1 评论 -
Spring Tx (三) (事务案例及源码 2)
Spring 事务源码 - 2原创 2022-10-27 18:25:37 · 1071 阅读 · 0 评论 -
Spring Tx (二) (事务案例及源码 1)
Spring 事务源码 - 1原创 2022-10-26 23:40:37 · 764 阅读 · 0 评论 -
Spring Tx (一) (事务)
Spring 事务初认识原创 2022-10-25 21:11:40 · 1240 阅读 · 0 评论 -
Spring Event 源码 (四) (事件以及监听器的源码解析)
Spring 事件机制的源码分析原创 2022-10-24 18:34:04 · 1181 阅读 · 0 评论 -
Spring Aop 源码 (三) (执行过程)
Spring Aop 源码分析之执行过程原创 2022-10-22 16:11:53 · 857 阅读 · 0 评论 -
Spring AOP 源码 (二) (大致过程)
Spring Aop 源码分析原创 2022-10-20 15:15:11 · 627 阅读 · 0 评论 -
SpringBoot 扩展性接口
Spring 中的可扩展性接口原创 2022-10-12 21:40:48 · 603 阅读 · 0 评论 -
Spring中的Aware作用以及源码
文章目录1.源码2.Aware调用链3.initializeBean 初始化Bean在有些场景中我们需要感知到容器的存在,需要获取容器的工具类,这个时候需要使用Spring Aware提供的工具类Spring 框架中提供许多实现Aware接口的类,这些类主要是为了辅助Spring访问容器中的数据1.源码自定义实现ApplicationContextAware接口类,然后在setApplicationContext方法打断点,debug模式下查看堆栈信息2.Aware调用链createBe原创 2021-10-03 17:26:45 · 1210 阅读 · 0 评论 -
Spring Aop (一) 自定义注解妙用
1.Aop的一些常用术语切面(Aspect):在Spring AOP中,切面可以使用通用类或者在普通类中以@Aspect 注解(@AspectJ风格)来实现连接点(Joinpoint):在Spring AOP中一个连接点代表一个方法的执行通知(Advice):在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中包括"around"、"before”和"after"等通知。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链切入点(原创 2022-01-03 19:36:56 · 3565 阅读 · 0 评论 -
Spring refresh() 方法详解(启动Spring,bean的创建过程)
文章目录1. this.prepareRefresh() 激活开启容器2. this.obtainFreshBeanFactory() 获取 bean 工厂3. this.prepareBeanFactory(beanFactory) 对获取到的 beanFactory 做预处理设置4. this.postProcessBeanFactory(beanFactory); beanFactory准备工作完成后进行的后置处理工作5. this.invokeBeanFactoryPostProcessors(be原创 2021-09-30 14:34:25 · 665 阅读 · 0 评论 -
Spring 工具分类_依据组织形式分类 (八)
Spring 工具分类_依据组织形式分类原创 2022-06-19 19:15:49 · 283 阅读 · 0 评论 -
Spring 一般工具建模 (七)
Spring 工具建模原创 2022-06-19 19:09:26 · 252 阅读 · 0 评论 -
java (小工具) (Spring) Resource + ResourceLoader + DefaultResourceLoader(六)
Resource + ResourceLoader + DefaultResourceLoader原创 2022-06-18 16:23:51 · 453 阅读 · 0 评论 -
java (小工具) (Spring) ConfigurationClassBeanDefinitionReader (五)
ConfigurationClassBeanDefinitionReader -> 读取ConfigurationClassParser 分析得出的ConfigurationClass 形成BeanDefinition 到BeanFactory原创 2022-06-17 19:31:10 · 385 阅读 · 0 评论 -
java (小工具) (Spring) ConfigurationClassParser (四)
1.ConfigurationClassParser 介绍2.parse 外部调用入口3.processConfigurationClass 分析一个配置类4.processDeferredImportSelectors 处理需要延迟处理的ImportSelector5.doProcessConfigurationClass 对一个配置类执行真正的处理6.processImports 处理配置类上搜集到的@Import注解......原创 2022-06-17 17:58:31 · 428 阅读 · 0 评论 -
Spring 常见的BeanFactoryPostProcessor: ConfigurationClassPostProcessor (三)
Spring 常见的BeanFactoryPostProcessor: ConfigurationClassPostProcessor原创 2022-06-16 17:06:50 · 351 阅读 · 0 评论 -
java (小工具) (Spring) AnnotationConfigUtils (二)
AnnotationConfigUtils 工具类的使用和概述, Spring框架内部工具类原创 2022-06-15 21:17:28 · 593 阅读 · 1 评论 -
java 小工具 (Spring 工具类) (一)
1.BeanDefinitionReaderUtils1.1 createBeanDefinition1.2 generateBeanName1.3 registerBeanDefinition1.4 registerWithGeneratedName2.ConfigurationClassUtils2.1 ConfigurationClassUtils类属性源码解析2.2 checkConfigurationClassCandidate2.3 isConfigurationCandidat原创 2022-06-14 15:30:18 · 347 阅读 · 0 评论 -
Spring源码分析 (getBean过程详解) (十四)
Spring中有一个闭环:getBean -> 创建依赖 -> getBean过程:1.createBeanInstance实例化 bean 2.populateBean属性注入 3.initializingBean初始化对象createBeanInstance:getBean -> doGetBean -> createBean -> doCreateBeaninitializingBean初始化对象: 1.激活Aware 2.后置处理器的应用 3.init方法原创 2022-05-19 12:31:36 · 416 阅读 · 0 评论 -
Spring源码分析 (bean后置处理器的创建过程 + 注册监听器) (十三)
文章目录1.bean后置处理器的创建过程2.注册监听器部分/Spring如何按照类型找到组件2.1 注册监听器2.2 Spring如何按照类型找到组件1.bean后置处理器的创建过程refresh()registerBeanPostProcessors()PostProcessorRegistrationDelegate: 这个类是管理全部的后置处理器的类 public static void registerBeanPostProcessors( ConfigurableListabl原创 2022-05-06 12:12:47 · 714 阅读 · 0 评论 -
Spring源码分析 (工厂的后置处理器的执行) (十二)
1.源码解析工厂后置处理器的执行AnnotationConfigApplicationContext.refresh()refresh() -> invokeBeanFactoryPostProcessors()PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors() public static void invokeBeanFactoryPostProcessors( Configurabl原创 2022-05-04 10:34:50 · 336 阅读 · 0 评论 -
Spring源码解析 (后置处理器的实现与实现的顺序) (十一)
1.概述生命周期后置处理器: BeanPostProcessor, BeanFactoryPostProcessor生命周期后置处理: InitializingBean, DisposableBean后置处理器会传入bean, 在于改变, 而InitialzingBean在于额外处理2.测试这里通过实现类实现他们BeanPostProcessor@Componentpublic class MyBeanPostProcessor implements BeanPostProces原创 2022-05-02 11:45:47 · 675 阅读 · 0 评论 -
Spring源码解析 (FactoryBean的一些事情) (十)
FactoryBean就是生成Bean的, 其目的就是为了创建对象FactoryBean 就是一个工厂Bean,相当于将工厂类放到了Spring中管理、当获取此Bean的时候返回的是此工厂生成的Bean。需要经过完整的一系列过程才可以创建出Bean1.测试public class Cat {}@Componentpublic class CatFactory implements FactoryBean<Cat> { @Override public Cat get原创 2022-04-30 11:17:14 · 335 阅读 · 0 评论 -
Spring源码解析 (谈谈@Autowried注解是怎么完成自动注入的) (九)
1.测试准备Cat.java@Componentpublic class Cat { private String catName = "tomcat"; public String getCatName() { return catName; } public void setCatName(String catName) { this.catName = catName; }}Person.java通过set加上@Autowre原创 2022-04-29 11:47:10 · 598 阅读 · 0 评论 -
Spring源码分析 (Aware接口调用) (八)
Aware接口是利用的回调机制, 将资源注入ioc容器1.Aware是什么时候赋值进来的1.createBeanInstance实例化 bean 2.populateBean属性注入 3.initializingBean初始化对象createBeanInstance:getBean -> doGetBean -> createBean -> doCreateBeaninitializingBean初始化对象: 1.激活Aware 2.后置处理器的应用 3.init方法所以说A.原创 2022-04-28 10:56:05 · 703 阅读 · 0 评论 -
Spring源码解析 (DefaultListableBeanFactory BeanFactory中的一个很重要的档案馆) (七)
DefaultListableBeanFactory 的功能DefaultListableBeanFactory 是一个很重要的档案馆IOc容器通过和DefaultListableBeanFactory组合完成一个整体联系DefaultListableBeanFactory.java这个档案馆中定义了很多map。有beanDefinitionNames的Map, 有beanDefinitionMap。所以说这个档案馆的功能很丰富。它在Spring中的地位很重要。BeanFactory原创 2022-04-27 11:26:26 · 541 阅读 · 0 评论 -
Spring源码解析 (BeanDefinition什么时候加载至DefaultListableBeanFactory) (六)
BeanDefinition存放的是Spring框架从xml中解析得到的bean信息1.准备调试public class Cat { private String catName = "tomcat"; public String getCatName() { return catName; } public void setCatName(String catName) { this.catName = catName; }}bean.x原创 2022-04-25 12:17:18 · 534 阅读 · 0 评论 -
Spring源码分析 (整体流程和资源加载器至BeanDefinition) (五)
文章目录1.Spring整体流程2.资源与资源加载器接口1.Spring整体流程资源读取为BeanDefinition读取的BeanDefinition加载到BeanDefinitonMap中, 为图纸通过for循环得到BeanDefinition, 然后通过一系列的getBean的过程和后置处理器干预的过程和三级缓存的过程, 将单例Bean存储到singletonObjects 中, 为飞机大炮2.资源与资源加载器接口Resource主要作用是定义快速读取资源的方法。实现的方法:原创 2022-04-24 16:44:09 · 268 阅读 · 0 评论 -
Spring源码分析 (常见的九大Bean后置处理器) (四)
spring在完成一个bean的初始化、实例化的过程中,会用到九个后置处理器spring在初始化的过程中,会在九个地方分别调用了五个后置处理的九个方法文章目录1.第一次调用后置处理器2.第二次调用后置处理器3.第三次调用后置处理器4.第四次调用后置处理器5.第五次调用后置处理器6.第六次调用后置处理器7.第七次调用后置处理器8.第八次调用后置处理器9.第九次调用后置处理器1.第一次调用后置处理器org.springframework.beans.factory.support.AbstractAut原创 2022-04-23 11:23:48 · 817 阅读 · 0 评论 -
Spring源码分析 (AbstractApplicationContext的两个分支)(三)
AbstractApplicationContext有两个分支,分别为AbstractRefreshableApplicationContext和GenericApplicationContext文章目录1.AbstractRefreshApplicationContext2.GenericApplicationContext1.AbstractRefreshApplicationContext以上的几种AbstractApplicationContext实现的主要区别在于加载Xml定义文件的路原创 2022-04-21 12:19:17 · 927 阅读 · 0 评论 -
Spring源码解析 (BeanFactory和ApplicationContext的实现类) (二)
文章目录1.BeanFactory 的实现1.BeanFactory 的实现DefaultListableBeanFactory无解析@Bean. @Configuration 的功能下面代码解析:先是通过一个工具类得到BeanDefinition, 然后beanFactory 注册BeanDefinition打印出工厂种的Beanpublic class TestBeanFactory { public static void main(String[] args) {原创 2022-04-03 14:49:11 · 458 阅读 · 0 评论 -
Spring的BeanFactoryPostProcessor和BeanPostProcessor
BeanFactoryPostProcessor和BeanPostProcessor,这两个接口,都是Spring初始化bean时对外暴露的扩展点。两个接口名称看起来很相似,但作用及使用场景却不同.BeanFactoryPostProcessor和BeanPostProcessor都是后置增强器。还有一个是BeanDefinitionRegistryPostProcessorBeanPostProcessor是Bean的后置增强BeanFactoryPostProcessor和BeanDefinati原创 2022-03-05 14:39:22 · 1922 阅读 · 1 评论 -
Spring源码解析 (BeanFactory和ApplicationContext) (一)
文章目录1.BeanFactory 与 ApplicationContext 的区别和联系1.BeanFactory 与 ApplicationContext 的区别和联系可以看出ApplicationContext 间接继承了 BeanFactory原创 2022-03-31 14:52:27 · 461 阅读 · 0 评论