![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring源代码
文章平均质量分 81
洋洋代码
这个作者很懒,什么都没留下…
展开
-
spring5.0.x版本源代码阅读详细讲解系列文章(附Spring流程执行图)
前言本系列文章中的源码基于Spring-5.0.13版本只关注注解方式,XML配置方式不关注博客里面的说明会比较少,代码中已经做好足够的注释了首先更新的简版文章,会是源码的删减版,只关注源码的主要走向,已将冷门及作用不大的代码删减掉了之后会出一版全版的文章,为全代码注释简版...原创 2020-07-19 15:52:57 · 338 阅读 · 0 评论 -
【Spring源代码阅读之十三】Spring的AOP相关逻辑代码
SpringAOP代码前言引入AOP依赖(对源码环境而言)AOP逻辑类@EnableAspectJAutoProxy(开启AOP支持)AspectJAutoProxyRegistrarAbstractAutoProxyCreator#postProcessAfterInitialization()wrapIfNecessary()isInfrastructureClass()shouldSkip()AbstractAdvisorAutoProxyCreator#getAdvicesAndAdvisorsFo原创 2020-06-14 16:44:32 · 669 阅读 · 0 评论 -
【Spring源代码阅读之十二】spring的Bean创建过程和图解spring是如何解决循环依赖的
spring的Bean创建过程、spring是如何解决循环依赖的创建过程图循环依赖集合循环依赖代码话解图解创建过程图spring在容器的启动创建阶段,对单例Bean等会默认进行实例的创建,其实就是获取需要创建实例的BeanName,调用getBean方法对其进行创建,只不过就是没有接收返回的参数而已,只是为了Bean的实例化,因为在Bean实例化过程的最后将Bean实例已经放进了集合中了,当再...原创 2020-04-18 11:11:19 · 733 阅读 · 0 评论 -
【Spring源代码阅读之十一】populateBean()方法对@Autowired和@Value注解的处理
populateBean方法对@Autowired和@Value注解的处理相关代码阅读导图(关注黄色populateBean方法第4步)populateBean方法的处理逻辑AutowiredAnnotationBeanPostProcessor#postProcessPropertyValuesfindAutowiringMetadatabuildAutowiringMetadatafindAu...原创 2020-04-11 13:00:10 · 612 阅读 · 1 评论 -
【Spring源代码阅读之十】populateBean()方法对已经创建好的实例进行属性填充之ByName或ByType自动注入模型相关代码阅读
populateBean方法对已经创建好的实例进行属性填充之ByName或ByType自动注入模型相关代码阅读导图(关注黄色populateBean方法2、3步)AbstractAutowireCapableBeanFactory#populateBeanautowireByNameunsatisfiedNonSimplePropertiesisExcludedFromDependencyChec...原创 2020-04-06 14:01:12 · 572 阅读 · 0 评论 -
【Spring源代码阅读之九】调用getBean()时,determineConstructors推断构造autowireConstructor或instantiateBean实例化Bean
determineConstructorsFromBeanPostProcessors推断确定使用的构造函数,autowireConstructor或instantiateBean实例化Bean导图(关注红色部分)AbstractAutowireCapableBeanFactory#createBeanInstancedetermineConstructorsFromBeanPostProcess...原创 2020-03-28 12:19:17 · 1107 阅读 · 2 评论 -
【Spring源代码阅读之九】refresh刷新容器之finishBeanFactoryInitialization()方法对非延迟加载的单例Bean调用getBean()实例化流程
refresh刷新容器之finishBeanFactoryInitialization方法对非延迟加载的单例Bean调用getBean实例化流程导图AbstractApplicationContext#finishBeanFactoryInitialization()DefaultListableBeanFactory#preInstantiateSingletons()AbstractBeanF...原创 2020-03-22 18:56:52 · 545 阅读 · 0 评论 -
【Spring源代码阅读之八】调用registerBeanPostProcessors()方法将容器中的BeanPostProcessor提取出来注册进容器的集合中供对Bean创建时调用
调用registerBeanPostProcessors方法将容器中的BeanPostProcessor提取出来注册进容器的集合中供对Bean创建时调用导图AbstractApplicationContext#registerBeanPostProcessorsPostProcessorRegistrationDelegate#registerBeanPostProcessors()registe...原创 2020-03-15 10:34:00 · 470 阅读 · 0 评论 -
【Spring源代码阅读之七】执行postProcessBeanFactory方法对@Configuration配置类的@Bean方法进行CGLIB代理增强
执行ConfigurationClassPostProcessor#postProcessBeanFactory方法对@Configuration配置类的@Bean方法进行CGLIB代理增强导图在哪调用到这里的ConfigurationClassPostProcessor#postProcessBeanFactoryenhanceConfigurationClassesConfigurationC...原创 2020-02-29 18:28:06 · 978 阅读 · 0 评论 -
【Spring源代码阅读之六】处理配置类的@Import、@Bean、父接口方法的@Bean并解析,同时解析@ImportResource
处理配置类的@Import、@Bean、父接口方法的@Bean并解析,同时解析@ImportResource导图开始处理ConfigurationClassParser#processImportsConfigurationClassParser#retrieveBeanMethodMetadataConfigurationClassParser#processInterfaces以下是解析Con...原创 2020-02-23 21:29:14 · 799 阅读 · 0 评论 -
【Spring源代码阅读之四】ConfigurationClassPostProcessor类postProcessBeanDefinitionRegistry()处理配置类流程
ConfigurationClassPostProcessor#postProcessBeanDefinitionRegistry处理配置类流程导言导图ConfigurationClassPostProcessor#postProcessBeanDefinitionRegistryprocessConfigBeanDefinitionsConfigurationClassUtils#isFullC...原创 2020-02-23 21:06:04 · 679 阅读 · 0 评论 -
【Spring源代码阅读之五】解析配置类的内部类、@PropertySource、@ComponentScan,处理@ImportResource注解
解析配置类的内部类、@PropertySource、@ComponentScan导图ConfigurationClassParser#processMemberClassesConfigurationClassParser#processPropertySourceConfigurationClassParser#addPropertySourceMutablePropertySources#ad...原创 2020-02-23 21:02:14 · 1142 阅读 · 0 评论 -
【Spring源代码阅读之三】refresh刷新容器之前期准备工作和Bean工厂级别的BeanFactoryPostProcessor处理流程
前期准备工作和BeanFactoryPostProcessor处理流程导图执行刷新方法AbstractApplicationContext#refreshAbstractApplicationContext#prepareRefreshAbstractApplicationContext#initPropertySourcesAbstractApplicationContext#obtainFre...原创 2020-02-15 18:52:23 · 350 阅读 · 0 评论 -
【Spring源代码阅读之二】向容器中注册配置类(一般是配置类,也可以是普通类)
向容器中注册配置类导图向容器中注册类代码AnnotationConfigApplicationContext#registerAnnotatedBeanDefinitionReader#registerAnnotatedBeanDefinitionReader#registerBean()AnnotationConfigUtils#processCommonDefinitionAnnotation...原创 2020-02-14 15:54:04 · 373 阅读 · 0 评论 -
【Spring源代码阅读之一】构建AnnotationConfigApplicationContext对象,准备环境,并理解Spring中的BeanDefinition重要知识点
构建AnnotationConfigApplicationContext对象,准备环境;BeanDefinitionAnnotationConfigApplicationContext对象AnnotationConfigApplicationContext默认构造父类GenericApplicationContext默认构造AnnotatedBeanDefinitionReader对象构造方法ge...原创 2020-02-03 12:27:48 · 623 阅读 · 0 评论