
Spring
文章平均质量分 95
spring源码学习
Integer_Double
这个作者很懒,什么都没留下…
展开
-
Spring源码学习七——事务管理主流程
同一个线程,相同的数据源,对于事务的处理使用同一个连接 - 同一个线程,不相同的数据源,使用不同的连接 - 不同的线程,相同的数据源,使用不同的连接 - 不同的线程,不同的数据源,使用不同的连接原创 2022-05-27 16:26:54 · 233 阅读 · 1 评论 -
Spring源码学习六——AOP主流程
一、AOP的作用AOP就是面向切面编程的简称,它里面有一些概念来帮助理解,我觉得那些都不重要。我的理解是利用动态代理增强方法,不侵入原来方法,在方法的执行前后增加逻辑,把这个做到灵活配置就是AOP了。比如给不同的方法增加同样的逻辑,或者给类中所有的方法都增强等等不同场景的使用1.1 JDK动态代理1.2 Cglib动态代理二、代码跟踪三、AspectJ四、总结...原创 2022-05-24 13:53:35 · 1178 阅读 · 2 评论 -
Spring源码学习五——循环依赖
一、产生原因二、三级缓存三、两级可以吗原创 2022-05-12 12:05:32 · 145 阅读 · 1 评论 -
Spring源码学习四——FactoryBean的作用
一、FactoryBean二、源码中的作用三、使用示例四、总结原创 2022-05-09 09:27:42 · 3785 阅读 · 0 评论 -
Spring源码学习三——Bean的生命周期主流程
一、实例化二、FactoryBean原创 2022-05-05 16:25:47 · 669 阅读 · 2 评论 -
Spring源码学习二——容器启动过程下
文章目录一、容器启动过程上二、容器启动过程下2.1 invokeBeanFactoryPostProcessors()一、容器启动过程上书接上回:容器启动过程上二、容器启动过程下2.1 invokeBeanFactoryPostProcessors()实例化并调用所有注册的BeanFactoryPostProcessor bean,如果给定,则遵循显式顺序。进入getBeanFactoryPostProcessorsbeanFactoryPostProcessors是空的,看了下在sprin原创 2022-04-28 11:35:11 · 344 阅读 · 1 评论 -
Spring源码学习一——容器启动过程上
一、启动容器启动一个注解配置的容器AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);进入构造方法AbstractApplicationContext.refresh()方法将刷新启动容器public void refresh() throws BeansException, IllegalStateException { synchroni原创 2022-04-24 15:12:15 · 603 阅读 · 1 评论 -
springIOC解决循环依赖的原理
首先解决循环依赖需要使用DefaultSingletonBeanRegistry类定义的三级缓存:/** 一级缓存,缓存初始化完成的单例对象,放到这里的单例对象是可以直接使用的 */private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);/** 二级缓存,缓存提前曝光的单例对象,放到这里的单例对象是不完整的*/private final Map<String原创 2020-06-19 16:46:41 · 1656 阅读 · 0 评论