- 博客(8)
- 收藏
- 关注
原创 spring源码阅读(二)--ioc容器加载(五)--invokeBeanFactoryPostProcessors()
前面我们讲解了postProcessBeanFactory(beanFactory); 是spring留给我们的扩展点,该扩展点是一个bean工厂的后置处理器,那么这些bean工厂会给我们带来什么要的威力呢,下面开始关于invokeBeanFactoryPostProcessors()的源码分析 protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) { //委托给PostP
2021-04-20 22:05:28
93
1
原创 spring源码阅读(二)--ioc容器加载(四)--postProcessBeanFactory(beanFactory);
直接上代码//预留的bean工厂的后置处理器,注意 这里并没有去调用postProcessBeanFactory(beanFactory); protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { //空方法,留给子类去实现}如何使用?@Componentpublic class MyBeanFactoryPostProcessor implements BeanFactor
2021-04-18 22:14:05
133
原创 spring源码阅读(二)--ioc容器加载(三)--prepareBeanFactory(beanFactory);
直接上代码//对bean工厂进行填充属性prepareBeanFactory(beanFactory);正如注释一样,该方法主要是对bean工厂进行一些属性填充, protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { //设置beanFactory的累加载器 beanFactory.setBeanClassLoader(getClassLoader()); //设置beanFa
2021-04-18 21:58:15
88
原创 spring源码阅读(二)--ioc容器加载(二)--obtainFreshBeanFactory();
直接上源码/***Tell the subclass to refresh the intern+al bean factory*告诉子类刷新内部bean工厂*/ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();继续步入得到 refreshBeanFactory(); @Override protected final void refreshBeanFactory() throws BeansE
2021-04-18 21:32:28
83
原创 spring源码阅读(二)--ioc容器加载(一)--prepareRefresh();
废话不多说,直接开始上源码ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext(“classpath:spring.xml”); public ClassPathXmlApplicationContext( String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws BeansExcep
2021-04-01 23:46:38
114
原创 验证volatile可见性之诡异事件
纸上得来终觉浅,绝知此事要躬行今天在学习volatile可见性的时候看见一个案例,于是进行编码验证,结果出现了诡异的事件,new了一个线程是改变变量,结果却对主线程可见了,居然跳出了循环。下面贴出代码class Test01 { int num = 0; public void numTo60() { this.num = 60; }}public class Test { public static void main(String[] a
2021-04-01 23:19:52
116
原创 记一次ThreadLocal在工作上的妙用
记一次ThreadLocal在工作上的妙用阐述:笔者目前所做的项目是一个跨境电商贸易的项目,最近接到一个需求,原来对接的xx海外供应商现在要增加一个子供应商,简而言之,就是将之前一个供应商一分为二,变成两个供应商,这就比较恶心了,首先要处理大量的数据,涉及到供应商数据,标准商品数据,店铺数据,甚至是各大电商平台的数据的修改,经过测试发现这两个供应商的外部唯一编码id不同,也就是我们常说的spuId不同,考虑到后期该供应商可能会有更多子供应商,经过细思考量之后,最后决定用ThreadLocal来结果不同子
2021-03-24 10:59:08
161
原创 spring源码阅读(一)--环境搭建
记录一下自己对spring源码的阅读理解(一)这是本人第一次记博客,平时都是记录在映像笔记中,发现印象不够深刻,模糊的始终是模糊的,打算用博客的方式鞭策自己,也希望一直能坚持下去,Spring编译环境搭建spring采用gradle进行编译的,和maven异曲同工,下面讲解一下spring源码阅读的环境搭建:去github上搜索spring-framework进行对应版本下载,笔者下载的是5.2版本https://github.com/spring-projects/spring-frame
2021-03-24 10:13:23
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人