![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring源码
文章平均质量分 94
从代码层面逐步分析Spring框架为我们的项目做了哪些事情。学习Spring的编码设计,帮助我们写出更高效、简介的代码。
自然醒zzz
这个作者很懒,什么都没留下…
展开
-
Spring源码(八):Spring事务详解
如果多个DML语句是同一个连接对象操作的,他们的算作同一个事务,前提是关闭自动提交Spring事务切面事务切面开启注解@EnableTransactionManagement,由注解上的@Import(TransactionManagementConfigurationSelector.class)来到selectImports方法。PROXY代表JDK事务,引入了AutoProxyRegistrar和ProxyTransactionManagementConfiguration。AutoProxy原创 2021-06-21 17:06:59 · 965 阅读 · 0 评论 -
Spring源码(七):Spring AOP 详解
一、几种BeanDefinitionRootBeanDefinitionGenericBeanDefinition#通过Compoent-scan扫描得到new ScannedGenericBeanDenition(metadata);#@Import进来的和内部类new AnnotatedGenericBeanDefinition(metadata); AnmotatedGenericBeanDefinition#GBean解析得到 new ConfigurationClassBeanDefin原创 2021-06-21 16:10:41 · 587 阅读 · 0 评论 -
Spring源码(六):ConfigurationClassPostProcessor详解
ConfigurationClassPostProcessor详解本篇主要详细说明ConfigurationClassPostProcessor。目前都是通过纯注解的方式使用Spring框架,虽然侵入性很强,但是能减少开发人员的工作量。基于注解的方式用AnnotationConfigApplicationContext上下文对象。进入this,来到AnnotatedBeanDefinitionReader,可以看到registerAnnotationConfigProcessors中注册了Confi原创 2021-04-11 16:40:51 · 6607 阅读 · 2 评论 -
Spring源码(五):Spring循环依赖详解
Spring循环依赖Spring循环依赖的3种情况单例@Autowired循环依赖功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Spring循环依赖的3种情况单例@Autowired循环依赖单例构造函数上的循环依赖多例的原创 2021-03-13 21:38:28 · 280 阅读 · 0 评论 -
Spring源码(四):注解的收集与依赖注入、initializeBean、Bean的销毁
Spring源码——注解实例化Bean只是在堆内存划了一片空间,Bean中带有@Autowired注解的属性是没有值的。applyMergedBeanDefinitionPostProcessors中会收集各种注解。CommonAnnotationBeanPostProcessor支持@PostConstruct,@PreDestroy,@Resource注解。AutowiredAnnotationBeanPostProcessor 支持 @Autowired,@Value注解。在Autowired原创 2021-03-12 17:48:57 · 310 阅读 · 0 评论 -
Spring源码(三):Bean的实例化过程
Spring——Bean的实例化一、实例化FactoryMethodName方法对应的实例二、实例化带有@Autowired注解的有参构造方法Bean的实例化从finishBeanFactoryInitialization进入,循环之前加入到beanDefinitionName的beanName。把父类属性复制到子类中,判断根据BeanDefinition判断bean是否是抽象的、单例的、懒加载的。从getBean来到doGetBean,先从缓存中拿对象,拿到了就做类型转换然后返回。如果缓存中没有,则原创 2021-03-10 16:49:35 · 685 阅读 · 0 评论 -
Spring源码(二):Spring在Bean实例化前的操作
Spring之Bean实例化前的操作一、invokeBeanFactoryPostProcessors二、registerBeanPostProcessors三、initApplicationEventMulticaster 上一篇介绍了BeanDefinition对象的构建与注册,但是还没有涉及到bean的实例化,这一篇先来看下bean实例化之前做了哪些事情。其中,国际化可以忽略。一、invokeBeanF原创 2021-03-06 23:15:35 · 1209 阅读 · 0 评论 -
Spring源码(一):Spring解析XML文件构建BeanDefinition对象
Spring构建BeanDefinition对象一、Spring解析XML文件构建BeanDefinition一般通过3种方式搭建Spring框架:Spring xml、Spring注解、SpringBoot。Spring xml的方式很古老,现在基本上没人用,但是要知道Spring的底层原理,还得从xml讲起。一、Spring解析XML文件构建BeanDefinitionSpring通过流的方式加载配置文件,然后封装成Resource对象loadBeanDefinitions用到了委托设计模式,原创 2021-03-05 14:09:28 · 599 阅读 · 4 评论