摘要: 这篇主要介绍的是refresh方法中的第六至十几个步骤 registerBeanPostProcessors 注册BeanPostProcessor,这个需要和之前说的BeanFactoryPostProcessor区分开,这个processor是在getBean的时候调用的,这时候bean已经成了 阅读全文
posted @ 2021-07-31 17:41 扭不动的奥利奥 阅读(43) 评论(0) 推荐(0)
摘要: parser.validate 本来想把parse、validate、loadBeanDefinition三个在一篇文章中介绍完的,但发现介绍完parse方法之后就很长了,只能另起篇章 这个方法就比较简单了,主要是对@Configuration和@Bean注解的一些校验 校验@Configurati 阅读全文
posted @ 2021-07-30 11:23 扭不动的奥利奥 阅读(199) 评论(0) 推荐(1)
摘要: parser.parse 这个方法主要是解析传递进来的bean,这里只会传递一个bean,那就是AppConfig public void parse(Set<BeanDefinitionHolder> configCandidates) { for (BeanDefinitionHolder ho 阅读全文
posted @ 2021-07-29 14:38 扭不动的奥利奥 阅读(129) 评论(0) 推荐(0)
摘要: 调用BeanFactoryPostProcessor 接下来进入第一个非常非常复杂的逻辑:获取符合条件的对象,放入beanDefinitionMap中供后续流程的使用 protected void invokeBeanFactoryPostProcessors(ConfigurableListabl 阅读全文
posted @ 2021-07-28 15:36 扭不动的奥利奥 阅读(61) 评论(0) 推荐(0)
摘要: refresh 在AnnotationConfigApplicationContext中说完了无参构造和register两个方法,接下来看最重要的一个方法:refresh,该方法包括了一个bean从实例化到初始化完成所有的流程,该方法在org.springframework.context.supp 阅读全文
posted @ 2021-07-27 18:31 扭不动的奥利奥 阅读(74) 评论(0) 推荐(0)
摘要: Spring家族是我们工作中天天打交道的,这个框架帮我们省去了很多繁琐的工作,但也带来了一定的麻烦,那就是有时框架封装的太好,出现了错误不了解源码的情况下不知道该如何下手。 上图就是spring框架的结构,我们平时说的IOC就是在core container中。 bean和对象的区别 spring中 阅读全文
posted @ 2021-07-26 17:25 扭不动的奥利奥 阅读(55) 评论(0) 推荐(0)
摘要: 线程池,工作中用的非常多的一个类。当线程池化,我们都知道线程的开启与销毁很消耗性能,所以在一些框架中都将线程进行池化,比如Redis连接池、数据库连接池等等。线程池的核心思想是任务的提交与执行区分开 基本属性 线程池有哪些状态?线程池的线程数和状态是如何表示的?这些都可以从类的成员变量体现出来 // 阅读全文
posted @ 2021-07-21 13:44 扭不动的奥利奥 阅读(98) 评论(0) 推荐(0)
摘要: 特点 这是一个优先级队列,该队列中的元素必须是Compartor或者Comparable的实现类才可以; 这是一个无界队列,所以入队不需要等待,直接将元素写入即可,出队时如果队列中没有元素需要在Condition上等待,这样也说明了该队列只需要一个Condition即可; 该类的底层使用的是数组,成 阅读全文
posted @ 2021-07-18 10:51 扭不动的奥利奥 阅读(95) 评论(0) 推荐(0)
摘要: 延迟队列,顾名思义,是一个可延迟的队列,这是一个无界队列,其最大的特点就是队列中的数据按照设定的等待时间长短排序,队列的头部是剩余时间最短的元素。内部组合了PriorityQueue优先队列,队列的操作都是依靠该队列完成的;延迟队列的元素必须是Delayed的子类,而Delayed是Comparab 阅读全文
posted @ 2021-07-17 11:11 扭不动的奥利奥 阅读(120) 评论(0) 推荐(0)
摘要: 说了CountDownlatch就不得不说下CyclicBarrier,它们俩的功能是大同小异的。CyclicBarrier被称为同步屏障,它可以使一定数量的线程反复在屏障处汇集,当线程到达屏障处调用await方法,该线程就会在此处阻塞,直到所有线程都达到屏障,那么屏障就会打开,所有线程就会继续执行 阅读全文
posted @ 2021-07-15 16:57 扭不动的奥利奥 阅读(212) 评论(0) 推荐(0)