
【Spring5.x 源码】
文章平均质量分 70
spring5.x 源码分析
小小工匠
show me the code ,change the world
展开
-
Spring - AnnotationBeanNameGenerator Bean命名规则
【代码】Spring - AnnotationBeanNameGenerator Bean命名规则。原创 2022-12-17 20:30:00 · 32582 阅读 · 0 评论 -
Spring - 事件监听机制 源码解析
事件事件生产者事件消费者控制器 (管理生产者、消费者和事件之间的注册监听关系)在Spring中,事件监听机制主要实现是通过事件、事件监听器、事件发布者和事件广播器来实现。原创 2022-12-17 14:00:00 · 34659 阅读 · 1 评论 -
Spring - DisposableBean扩展接口
Spring Boot - 扩展接口一览扩展点只有一个方法,触发时机为当此对象销毁时,会自动执行该方法。比如说运行时,就会触发这个方法。当Spring容器销毁时,会将容器中的所有单例bean先全部销。调用链如下:继续继续 重点调用bean的封装类方法总结一下:先从对象中获取当前bean对象转化成对象,然后直接调用方法;然后再通过反射调用bean配置的方法原创 2022-12-08 06:30:00 · 33972 阅读 · 1 评论 -
Spring - SmartInitializingSingleton扩展接口
Spring Boot - 扩展接口一览触发时机只有一个方法,其作用是是 在spring容器管理的所有单例对象(非懒加载对象)初始化完成之后调用的回调接口。其触发时机为之后。可以扩展此接口在对所有单例对象初始化完毕后,做一些后置的业务处理在Spring容器启动时,会调用方法;重点看 继续继续扩展示例原创 2022-12-07 06:45:00 · 33734 阅读 · 0 评论 -
Spring - FactoryBean扩展接口
Spring Boot - 扩展接口一览一般情况下,Spring通过反射机制利用bean的class属性指定支线类去实例化bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在bean中提供大量的配置信息。配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案。Spring为此提供了一个的工厂类接口,用户可以通过实现该接口定制实例化Bean的逻辑。接口对于Spring框架来说占用重要的地位,Spring自身就提供了70多个的实现。隐藏了实例化一些复杂bean的细节,原创 2022-12-06 07:00:00 · 34132 阅读 · 0 评论 -
Spring5 - 核心原理
文章目录核心原理解析核心原理解析周末梳理了下Spring Framework的核心原理,详细请参考:在Processon上,直达地址: https://www.processon.com/view/link/61345766f346fb07155ec9ad原创 2021-09-05 13:41:00 · 21761 阅读 · 0 评论 -
Spring MVC源码 - 00开篇主题框架一览
文章目录主流程主流程原创 2020-10-17 23:47:35 · 14620 阅读 · 0 评论 -
Spring5源码 - 14 如何在所有Bean创建完后做扩展?
文章目录葛大爷的问题Answer方式一 基于Spring事件监听方式二 基于SmartInitializingSingleton接口葛大爷的问题Answer想要回答这个问题,就要对Spring的生命周期有一定的了解,今天我们就来回顾一下IOC的生命周期及Spring提供给开发人员的扩展点,当然了,我们今天只聊Bean加载完成后的事儿 。老规矩 先应用后源码 ,开搞~方式一 基于Spring事件监听方式二 基于SmartInitializingSingleton接口.原创 2020-10-31 12:26:50 · 15554 阅读 · 6 评论 -
Spring5源码 - 13 Spring事件监听机制_@EventListener源码解析
文章目录Pre概览@EventListenerPreSpring5源码 - 10 Spring事件监听机制_应用篇Spring5源码 - 11 Spring事件监听机制_源码篇Spring5源码 - 12 Spring事件监听机制_异步事件监听应用及源码解析通过上面三篇文章的学习,是不是发现没有看到Spring是如何解析@EventListener注解的呢? Let’s go ~~~概览@EventListener...原创 2020-10-31 11:21:56 · 16797 阅读 · 0 评论 -
Spring5源码 - 12 Spring事件监听机制_异步事件监听应用及源码解析
文章目录Pre应用原理配置类PreSpring5源码 - 11 Spring事件监听机制_源码篇应用原理Spring提供的事件机制,默认是同步的。如果想要使用异步事件监听,可以自己实现ApplicationEventMulticaster接口,并在Spring容器中注册id为applicationEventMulticaster的Bean , 设置 executor配置类package com.artisan.eventlistener2;import org.springfram原创 2020-10-30 21:09:50 · 15395 阅读 · 0 评论 -
Spring5源码 - 11 Spring事件监听机制_源码篇
preSpring5源码 - 10 Spring事件监听机制_应用篇观察者模式说了应用,那我们来看下Spring的源码是如何实现这种事件监听机制的吧事件监听机制的实现原理[观察者模式]其实就是观察者模式事件 ApplicationEvent事件监听者 ApplicationEvent相当于观察者模式中的观察者。监听器监听特定事件,并在内部定义了事件发生后的响应逻辑事件发布者 ApplicationEventMulticaster (多播器)相当于观察者模式中的被观察者/主题..原创 2020-10-29 23:07:48 · 15570 阅读 · 0 评论 -
Spring5源码 - 10 Spring事件监听机制_应用篇
文章目录Spring事件概览事件事件监听器事件广播器Spring事件概览Spring事件体系包括三个组件:事件,事件监听器,事件广播器事件Spring的内置事件中由系统内部进行发布,只需注入监听器ContextRefreshedEvent当容器被实例化或refreshed时发布.如调用refresh()方法, 此处的实例化是指所有的bean都已被加载,后置处理器都被激活,所有单例bean都已被实例化, 所有的容器对象都已准备好可使用. 如果容器支持热重载,则refresh可以被触原创 2020-10-29 21:04:02 · 15486 阅读 · 0 评论 -
Spring5源码 - 00 IOC容器创建_前期准备
文章目录Demo源码分析this调用父类的构造函数然后调用自己的构造函数register(annotatedClasses);DemoAnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(App.class);进去看一下public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { /原创 2020-10-14 00:35:25 · 14943 阅读 · 1 评论 -
Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_3细说invokeBeanDefinitionRegistryPostProcessors
文章目录Pre细说invokeBeanDefinitionRegistryPostProcessorsPreSpring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2细说invokeBeanDefinitionRegistryPostProcessors我们来看流程图...原创 2020-10-13 20:28:13 · 15256 阅读 · 2 评论 -
Spring5 - Bean的初始化和销毁的4种方式
文章目录概述方式一: 自行指定bean的初始化方法和bean的销毁方法方式二: 通过 InitializingBean和DisposableBean 接口实现bean的初始化以及销毁方法方式三: 通过JSR250规范 提供的注解@PostConstruct 和@ProDestory标注的方法方式四:通过Spring的BeanPostProcessor的 bean的后置处理器会拦截所有bean创建过程概述针对单实例bean的话,容器启动的时候,bean的对象就创建了,而且容器销毁的时候,也会调用B原创 2020-10-11 23:50:58 · 15129 阅读 · 0 评论 -
Spring5 - 向IOC容器中添加组件的4种方式
文章目录概述方式一方式二方式三方式四概述简单来说,4种方式@CompentScan + @Controller @Service @Respository @compent@Bean@ImportFacotryBean接下来我们针对每种方式,来演示一下方式一方式二方式三方式四...原创 2020-10-11 18:15:00 · 15159 阅读 · 0 评论 -
Spring5源码 - Spring IOC 注解复习
文章目录Prexml配置文件JavaConfigPre为了更好地学习源码,我们有必要对基础知识进行一次简单的复习,只有在知道如何使用的基础上,再去阅读源码才能明白spring这些源码是对哪些功能的支持。这里简单的梳理一下xml配置文件【配置文件 】<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2020-10-11 14:17:09 · 15013 阅读 · 2 评论 -
Spring5源码 - 09 循环依赖解读
文章目录什么是循环依赖模拟循环依赖的问题什么是循环依赖举个简单的例子A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。或者是 A 依赖 B,B 依赖 C,C 又依赖 A,同样的 也是循环依赖模拟循环依赖的问题package com.artisan.cycleDepend;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Comp原创 2020-09-25 00:17:41 · 14748 阅读 · 1 评论 -
Spring5源码 - 08 BeanFactory和FactoryBean 源码解析 & 使用场景
文章目录区别演示区别首先明确一下,这两个东西是玩完全不同的两个东西BeanFactory 是Spring Framework的 顶级核心接口 , 没有这个接口,就没有Bean的产生。演示原创 2020-09-23 18:32:14 · 14983 阅读 · 1 评论 -
Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02
文章目录PrefinishBeanFactoryInitializationPreSpring5源码 - 06 Spring Bean 生命周期流程 概述 01接上文finishBeanFactoryInitialization/** * Finish the initialization of this context's bean factory, * initializing all remaining singleton beans. */ protected void原创 2020-09-20 18:41:37 · 14932 阅读 · 0 评论 -
Spring5源码 - 06 Spring Bean 生命周期流程 概述 01
文章目录Bean生命周期概述DemoBean生命周期概述说到Spring Bean的生命周期,其实就是探究Spring Bean实例化经历哪些步骤了本篇博文先给个整体的解读,下文将从源码上来探究Spring Bean的生命周期过程。Demo先跑通一个小demo...原创 2020-09-19 17:54:01 · 15123 阅读 · 0 评论 -
Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2
文章目录Pre源码解读Pre接上文 Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1源码解读总体流程/** * *调用bean工厂的后置处理器 * 1)BeanDefinitionRegistryPostProcessor(先被执行) * 所有的bean定义信息将要被加载到容器中,Bean实例还没有被初始化 * 2)BeanFactoryPostProcessor(后执行) * 所有的Bean定义信息已经加载到原创 2020-09-18 00:32:45 · 14931 阅读 · 2 评论 -
Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1
文章目录Prerefresh()Spring的设计Pre接上文 Spring5源码 - 03 普通对象对应的BeanDefinition是如何存入DefaultListableBeanFactory#beanDefinitionMap 源码分析refresh()这里我们只粗略的看一下其中的逻辑,真的很复杂@Override public void refresh() throws BeansException, IllegalStateException { synchronized原创 2020-09-16 14:55:39 · 15645 阅读 · 0 评论 -
Spring5源码 - 03 普通对象对应的BeanDefinition是如何存入DefaultListableBeanFactory#beanDefinitionMap 源码分析
文章目录PreSpring处理bdmap 的理念源码分析Pre接上文 Spring5源码 - 02 Bean和Java对象的区别与猜想验证BeanDefinition我们分析了流程, 也从理论上描述了 普通对象 ----- BeanDefinition ------Bean对象之间的关联,提到了一个BeanDefinition的Map集合 (我们称之为 bdmap ,后面都用这个简称代替 ),那从源码里面怎么体现出来bdmap 的呢?本篇博文将带你一一掀开Spring处理bdmap 的原创 2020-09-16 10:13:42 · 15453 阅读 · 0 评论 -
Spring5源码 - 02 Bean和Java对象的区别与猜想验证BeanDefinition
文章目录问题问题Spring创建的Bean 和 我们提供的 对象 有什么关系吗? 一定是我们提供的这个对象实例吗?原创 2020-09-14 20:45:15 · 15174 阅读 · 0 评论 -
Spring5源码 - 构建源码环境
文章目录git clone 源码gradle调整 [可选]gradle离线安装gradle中央仓库地址调整执行 gradlew.bat导入到IEDAgradlew :spring-oxm:compileTestJava导入到IDEA编译和 运行Testst设置为 IntelliJ IDEA (建议)测试验证Gradle 下载的依赖包存储的位置git clone 源码源码地址: https://github.com/spring-projects/spring-frameworkcopy地址,待会原创 2020-09-06 00:38:50 · 16710 阅读 · 6 评论