自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 spring源码阅读(二)--ioc容器加载(五)--invokeBeanFactoryPostProcessors()

前面我们讲解了postProcessBeanFactory(beanFactory); 是spring留给我们的扩展点,该扩展点是一个bean工厂的后置处理器,那么这些bean工厂会给我们带来什么要的威力呢,下面开始关于invokeBeanFactoryPostProcessors()的源码分析 protected void invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory) { //委托给PostP

2021-04-20 22:05:28 70 1

原创 spring源码阅读(二)--ioc容器加载(四)--postProcessBeanFactory(beanFactory);

直接上代码//预留的bean工厂的后置处理器,注意 这里并没有去调用postProcessBeanFactory(beanFactory); protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) { //空方法,留给子类去实现}如何使用?@Componentpublic class MyBeanFactoryPostProcessor implements BeanFactor

2021-04-18 22:14:05 91

原创 spring源码阅读(二)--ioc容器加载(三)--prepareBeanFactory(beanFactory);

直接上代码//对bean工厂进行填充属性prepareBeanFactory(beanFactory);正如注释一样,该方法主要是对bean工厂进行一些属性填充, protected void prepareBeanFactory(ConfigurableListableBeanFactory beanFactory) { //设置beanFactory的累加载器 beanFactory.setBeanClassLoader(getClassLoader()); //设置beanFa

2021-04-18 21:58:15 67

原创 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 57

原创 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 68

原创 验证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 89

原创 记一次ThreadLocal在工作上的妙用

记一次ThreadLocal在工作上的妙用阐述:笔者目前所做的项目是一个跨境电商贸易的项目,最近接到一个需求,原来对接的xx海外供应商现在要增加一个子供应商,简而言之,就是将之前一个供应商一分为二,变成两个供应商,这就比较恶心了,首先要处理大量的数据,涉及到供应商数据,标准商品数据,店铺数据,甚至是各大电商平台的数据的修改,经过测试发现这两个供应商的外部唯一编码id不同,也就是我们常说的spuId不同,考虑到后期该供应商可能会有更多子供应商,经过细思考量之后,最后决定用ThreadLocal来结果不同子

2021-03-24 10:59:08 134

原创 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 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除