摘要: ThreadLocal很容易让人望文生义,认为是一个本地线程,其实不然,ThreadLocal是Thread的一个局部变量,TheradLocal本身是一个类,是用于解决多线程并发访问问题。它为每一个线程提供了变量副本,使得每个线程在同一时刻访问到的并非同一个对象,从而隔离了多个线程对数据的共享。 阅读全文
posted @ 2021-08-01 21:48 福福猿 阅读(176) 评论(0) 推荐(0)
摘要: 如果我们想要在spring容器加载完成时,做一些什么操作,就可以通过事件的监听来完成,由上篇文章知道spring在容器加载完成时会发布一个ContextRefreshedEvent事件,那么我们只要去监听 这个事件即可。 创建一个类实现ApplicationListener接口 测试 我们也可以自定 阅读全文
posted @ 2021-08-01 20:18 福福猿 阅读(64) 评论(0) 推荐(0)
摘要: 前面讲了往事件管理类中注册事件,那么事件的监听什么时候被触发呢?在事件发布的时候,发布事件时会获取到事件管理类中所有的事件,去循环广播,然后调用事件监听类的onApplicationEvent()方法。在容器加载完成的时候,spring会发布一个ContextRefreshdEvent。 1.ref 阅读全文
posted @ 2021-08-01 19:49 福福猿 阅读(94) 评论(0) 推荐(0)
摘要: 在refresh()方法中有一个registerListeners()方法,该方法主要完成往事件管理类中注册事件。 1.refresh()方法中的registerListeners()方法 2.进入registerListeneres()方法 阅读全文
posted @ 2021-08-01 16:55 福福猿 阅读(209) 评论(0) 推荐(0)
摘要: 在spring容器加载核心方法refresh()方法中有一个initApplicationEventMulticaster()方法,该方法主要完成事件管理类的初始化,并加入一级缓存。 1.refresh()方法中的initApplicationEventMulticaster()方法 2.进入ini 阅读全文
posted @ 2021-08-01 16:52 福福猿 阅读(171) 评论(0) 推荐(0)
摘要: 第5篇我们讲了invokeBeanFactoryPostProcessors()方法,我们接着spring容器加载refresh()核心方法往下走,今天来看registerBeanPostProcessor()方法 1.refresh()中的registerBeanPostProcessor()方法 阅读全文
posted @ 2021-08-01 16:18 福福猿 阅读(72) 评论(0) 推荐(0)
摘要: 上篇文章讲了容器加载过程中会对实现了BeanDefinitionRegistyPostProcessor接口的调用,现在讲一下BeanDefinitionRegistyPostProcessor接口具体的应用,主要是对BeanDefinition的进行增删改操作。 1.创建一个类不加任何注解,也不在 阅读全文
posted @ 2021-08-01 16:08 福福猿 阅读(82) 评论(0) 推荐(0)
摘要: 前两篇文章讲了obtainFreshBeanFactory()方法,该方法主要是进行xml解析并封装成BeanDefinition,今天我们接着refresh()核心方法往下看invokeBeanFactoryPostProcessor()方法,该方法主要完成对实现了BeanDefinitionRe 阅读全文
posted @ 2021-08-01 15:21 福福猿 阅读(106) 评论(0) 推荐(0)