Spring
文章平均质量分 94
Spring学习笔记
炸了毛的猫
路虽远,行则将至。事虽难,做则必成。
不积跬步,无以至千里,不积小流,无以成江海。
展开
-
Spring AOP系列学习笔记一:AOP简介
文章目录一、AOP常见概念一、AOP常见概念Joinpoint(连接点):在系统运行之前,AOP 的功能模块都需要织入到具体的功能模块中。要进行这种织入过程,我们需要知道在系统的哪些执行点上进行织入过程,这些将要在其之上进行织入操作的系统执行点就称之为 Joinpoint,最常见的 Joinpoint 就是方法调用。Pointcut(切点):切点有有助于缩小切面所通知的连接点的范围,指定一组Joinpoint,定义了Advice发生的地方,例如:execution(* com.zgf.proxy.原创 2021-06-29 19:17:51 · 164 阅读 · 0 评论 -
Spring AOP系列学习笔记二:AOP入口分析
原文地址程序员囧辉大佬文章目录前言基于xml的方式AspectJAutoProxyBeanDefinitionParser#parse代码块一:registerAspectJAnnotationAutoProxyCreatorIfNecessary代码块二:AopConfigUtils#registerAspectJAnnotationAutoProxyCreatorIfNecessary前言我们分析基于注解的aop应该如何做,无论是xml配置(<aop:aspectj-autoproxy原创 2021-06-29 20:14:34 · 281 阅读 · 0 评论 -
Spring AOP系列学习笔记三:AOP注解原理分析
文章目录前言代码块一:postProcessAfterInitialization代码块二:wrapIfNecessary前言前面我们介绍了aop基于xml和注解的入口,下面我们正式进入解析的过程。在解析BeanPostProcessor 接口的时候已经介绍过了,在bean初始化的前后会分别调用postProcessBeforeInitialization和postProcessAfterInitialization,AnnotationAwareAspectJAutoProxyCreator或者其父类原创 2021-07-06 16:58:13 · 257 阅读 · 0 评论 -
Spring AOP系列学习笔记四:AOP具体调用流程分析
原文地址程序员囧辉大佬文章目录JdkDynamicAopProxy#invoke代码块1:ReflectiveMethodInvocation 构造函数代码块2:ReflectiveMethodInvocation#proceed代码块3:invokeJoinpoint代码块4:ExposeInvocationInterceptor # invoke代码块5:AspectJAroundAdvice # invoke代码块6:invokeAdviceMethod代码块7:argBinding代码块8:inv原创 2021-07-07 16:14:31 · 492 阅读 · 0 评论 -
Spring IOC系列学习笔记一:前置刷新
Spring源码学习:ApplicationContext 刷新前的配置文章目录Spring源码学习:ApplicationContext 刷新前的配置前言一、web.xml二、initWebApplicationContext方法总结前言众所周知:Spring的核心是refresh方法,但是在执行该方法之前还有一些比较重要的操作,下面我们来讲解一下。一、web.xml <!-- 以ContextLoaderListener的方式启动spring容器 --> <list原创 2021-03-23 09:47:19 · 245 阅读 · 3 评论 -
Spring IOC系列学习笔记二:obtainFreshBeanFactory方法
Spring源码学习:obtainFreshBeanFactory方法原文地址程序员囧辉大佬文章目录Spring源码学习:obtainFreshBeanFactory方法前言obtainFreshBeanFactory方法概述代码块一:obtainFreshBeanFactory代码块二:refreshBeanFactory代码三:loadBeanDefinitions代码块四:loadBeanDefinitions代码块五:loadBeanDefinitions总结前言已经把refresh方法原创 2021-03-23 15:31:16 · 210 阅读 · 0 评论 -
Spring IOC系列学习笔记三:parseDefaultElement详解
Spring系列学习笔记三:parseDefaultElement详解原文地址程序员囧辉大佬文章目录Spring系列学习笔记三:parseDefaultElement详解前言代码块一:parseDefaultElement代码块二:processBeanDefinition代码块三:parseBeanDefinitionElement代码块四:parseBeanDefinitionElement代码块五:parseBeanDefinitionAttributes代码块六:parseConstructor原创 2021-03-24 18:26:28 · 209 阅读 · 0 评论 -
Spring IOC系列学习笔记四:parseCustomElement解析
Spring系列学习笔记四:parseCustomElement解析原文地址程序员囧辉大佬文章目录Spring系列学习笔记四:parseCustomElement解析前言代码块一:parseBeanDefinitions代码块二:parseCustomElement代码块三:resolve代码块四:getHandlerMappings代码块五:init代码块六:parse代码块七:parse总结前言前面我们已经解析了默认命名空间的解析,现在继续解析定制的命名空间解析,开始吧。代码块一:pars原创 2021-03-25 09:43:34 · 213 阅读 · 1 评论 -
Spring IOC系列学习笔记五:context:component-scan 节点解析
Spring系列学习笔记五:context:component-scan 节点解析原文地址程序员囧辉大佬文章目录Spring系列学习笔记五:context:component-scan 节点解析前言代码块一:parse代码块二:configureScanner代码块三:createScanner代码块四:registerDefaultFilters代码块五:parseTypeFilters代码块六:doScan代码块七:findCandidateComponents代码块八:scanCandidateC原创 2021-03-25 17:36:06 · 209 阅读 · 0 评论 -
Spring IOC系列学习笔记六:invokeBeanFactoryPostProcessors解析
spring原创 2021-03-26 13:54:15 · 272 阅读 · 0 评论 -
Spring IOC系列学习笔记七:registerBeanPostProcessors
Spring IOC系列学习笔记七:registerBeanPostProcessors原文地址程序员囧辉大佬文章目录Spring IOC系列学习笔记七:registerBeanPostProcessors前言代码块一:registerBeanPostProcessors代码块二:registerBeanPostProcessors基本使用总结前言invokeBeanFactoryPostProcessors 方法主要用于处理 BeanFactoryPostProcessor 接口,而 regi原创 2021-03-26 16:59:48 · 196 阅读 · 0 评论 -
Spring IOC系列学习笔记八:finishBeanFactoryInitialization
系列文章目录原文地址程序员囧辉大佬文章目录系列文章目录前言代码块一:finishBeanFactoryInitialization前言该方法会实例化所有剩余的非懒加载单例 bean。除了一些内部的 bean、实现了 BeanFactoryPostProcessor 接口的 bean、实现了 BeanPostProcessor 接口的 bean,其他的非懒加载单例 bean 都会在这个方法中被实例化,并且 BeanPostProcessor 的触发也是在这个方法中。代码块一:finishBean原创 2021-04-01 16:31:32 · 167 阅读 · 1 评论 -
Spring IOC系列学习笔记九:getBean方法
Spring IOC系列学习笔记九:getBean方法原文地址程序员囧辉大佬文章目录Spring IOC系列学习笔记九:getBean方法前言代码块一:getBean前言前面讲解了finishBeanFactoryInitialization方法,接着进入getBean方法的解析。代码块一:getBean @Override public Object getBean(String name) throws BeansException { return doGetBean(name,原创 2021-04-07 15:47:51 · 268 阅读 · 0 评论 -
Spring IOC系列学习笔记十:createBean方法(上)
Spring IOC系列学习笔记十:createBean方法(上)原文地址程序员囧辉大佬文章目录Spring IOC系列学习笔记十:createBean方法(上)前言代码块一:createBean代码块二:resolveBeforeInstantiation前言继续前面getBean的讲解进入createBean方法。代码块一:createBean @Override protected Object createBean(String beanName, RootBeanDefiniti原创 2021-05-18 17:55:40 · 185 阅读 · 0 评论 -
Spring IOC系列学习笔记十一:createBean方法(下)
原文地址程序员囧辉大佬文章目录前言代码块一:applyMergedBeanDefinitionPostProcessors代码块二:getEarlyBeanReference代码块三:addSingletonFactory代码块四:populateBean代码块五:autowireByName前言前面讲解了创建Bean实例的createBeanInstance方法,下面我们对doCreateBean其他方法进行解析。protected Object doCreateBean(final Stri原创 2021-05-24 17:16:39 · 161 阅读 · 0 评论 -
Spring IOC系列学习笔记十二:@Autowire注解
原文地址程序员囧辉大佬文章目录前言开启Spring的注解配置代码中使用继承结构源码解析AutowiredAnnotationBeanPostProcessor 何时被注册到 BeanFactory?AnnotationConfigUtils#registerAnnotationConfigProcessors构造函数注入前言我们介绍一个我们在Spring开发中的最常用的注解@Autowire,在前面createBean方法(上)的代码块三的4.2和createBean方法(下)的代码块一和代码块四原创 2021-05-26 14:43:36 · 211 阅读 · 0 评论 -
Spring IOC系列学习笔记十三:循环依赖
原文地址文章目录前言一、什么是循环依赖?二、解决循环依赖的思路三、使用了三级缓存还有什么问题?怎么解决的?四、二级缓存能否解决循环依赖,三级缓存存在的意义五、多例和构造器为什么无法解决循环依赖六、扩展七、spring在创建bean的时候,在哪里创建的动态代理?八、spring是如何检测循环依赖的前言 分析了ioc的创建流程,会遇到一个问题,如果出现循环依赖该如何解决,下面我们来具体的介绍一下之前学习的疑问一、什么是循环依赖? 所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了原创 2021-05-26 17:11:19 · 150 阅读 · 0 评论