源码啊!
文章平均质量分 71
Code-zyc
这个作者很懒,什么都没留下…
展开
-
十分详细的HashMap 源码
目录前置知识重要变量的解释DEFAULT_INITIAL_CAPACITYMAXIMUM_CAPACITYDEFAULT_LOAD_FACTORTREEIFY_THRESHOLDUNTREEIFY_THRESHOLDMIN_TREEIFY_CAPACITY方法开始执行:无参构造创建:有参构建put方法putValue方法resize 初始化或加倍表大小split (扩容时将树进行拆分)untreeify(将节点变成链表)treeify(将节点变成树)treeifyBin(列表进行树化)总结:扩容的条件扩容对原创 2022-04-23 19:57:52 · 2497 阅读 · 5 评论 -
spring-BeanFactory与FactoryBean
目录两者区别:例子:总结为什么要加 &存放的位置补充总结:两者区别:BenaFacory:FactoryBean:在方法上factoryBean 简单许多例子:写好类:关于获取的方法:注意 获取那个 对象如果实现了factoryBean 需要加& 符号才能获取到而直接用name 则会获取到 你实现那个方法的类总结为什么要加 &源码:而我们执行完成后一级缓存里面放的是没有& 的;那为什么 取的时候需要进行加&原因是 取的时候原创 2022-04-11 21:38:23 · 344 阅读 · 0 评论 -
refresh下initApplicationEventMulticaster源码
目录方法大致前半部分:后半部分方法大致图片代码protected void initApplicationEventMulticaster() { // 获取当前bean工厂,一般是DefaultListableBeanFactory ConfigurableListableBeanFactory beanFactory = getBeanFactory(); // 判断容器中是否存在bdName为applicationEventMulticaster的bd,也就是说自定义的事件监听多原创 2022-04-08 17:11:58 · 175 阅读 · 0 评论 -
spring源码---refresh下registerBeanPostProcessors
目录方法图片源码执行分析方法图片源码执行分析此方法的内部执行与 上一个方法:invokeBeanFactoryPostProcessors的处理方式非常类似,都是遍历beanfactory里面 按照是否实现了BeanPostProcessor 然后 再根据 是否情况 分为了四种:接下来对所有的进行循环遍历进行分配:然后就是进行排序和注册:至于后面为什么又重复的代码主要是 因为 这两个的集合里面存放的是string后面的代码主要是 根据string 从beanfatory中获取原创 2022-04-08 11:01:25 · 387 阅读 · 0 评论 -
spring源码---refresh下invokeBeanFactoryPostProcessors详解
目录invokeBeanFactoryPostProcessorsinvokeBeanFactoryPostProcessors执行之前了解:记住 BeanDefinitionRegistryPostProcessor是BeanFactoryPostProcessor的子集这一点 记住 :BeanDefinitionRegistryPostProcessor 接口 自己又定义了一个方法:postProcessBeanDefinitionRegistry前面这一部分就是进行一些判断 建原创 2022-04-08 10:32:30 · 317 阅读 · 0 评论 -
spring源码Refresh--obtainFreshBeanFactory()详解
目录方法的入口:进入到方法里面:refreshBeanFactory()if-elsecreateBeanFactory()方法的入口:进入到方法里面:首先 进入到 refreshBeanFactory() 方法里面refreshBeanFactory()if-else这一个就是起到 刷新工程 如果你已经存在了工厂就给你清空 并关闭重新给你整一个。执行完后 执行后面的createBeanFactory()具体我就不点了 主要就是 创建DefaultListableBeanFact原创 2022-03-30 20:00:15 · 732 阅读 · 0 评论 -
spring源码----loadBeanDefinitions(DefaultListableBeanFactory)详解
目录方法图片:new XmlBeanDefinitionReader接着往下执行这四个方法:loadBeanDefinitions(XmlBeanDefinitionReader)loadBeanDefinitions(String...)loadBeanDefinitions(String)loadBeanDefinitions(String,@Nullable Set《Resource》)loadBeanDefinitions(Resource...)方法图片:首先执行第一个方法:new Xml原创 2022-03-30 19:55:29 · 907 阅读 · 0 评论 -
spring源码--refresh下的prepareRefresh详解
目录首先是方法图片进入内部:initPropertySourcesgetEnvironment().validateRequiredProperties()首先是方法图片进入内部:前面四个没什么好说的 就是一些属性的设置 具体看注释往后执行 到initPropertySources进入里面就是个空的没有任何实现然后退出来 进入到这个方法:getEnvironment().validateRequiredProperties()点进去:再进去:第一个参数的就是个异常类 :往原创 2022-03-23 10:50:20 · 657 阅读 · 0 评论 -
spring-initPropertySources()与validateRequiredProperties的测试
目录测试之前:开始测试首先 实现initPropertySources创建自己的类开始执行initPropertySourcesvalidateRequiredProperties我的父亲文章为spring源码–refresh下的prepareRefresh详解请点击:测试之前:我们没实现 initPropertySources()的时候 走到validateRequiredProperties 时 属性值是这样的:可以看见size=0;开始测试首先 实现initPropertySourc原创 2022-03-23 10:21:51 · 777 阅读 · 0 评论 -
spring源码---ClassPathXmlApplicationContext-setConfigLocations(configLocations)详解
目录spring整体流程参考:类图:进入到setConfigLocations方法中:进入到Assert.noNullElements进入到resolvePath总结spring整体流程参考:暂未完成 有了第一时间更新类图:这是方法的入口进入到setConfigLocations方法中:进入到Assert.noNullElements意义看注释回到原方法:进入到resolvePath咱就不进去了哈这个方法 还是有实际应用的 :比如你的 xml 文件 交 zyc-${原创 2022-03-22 18:03:41 · 719 阅读 · 0 评论 -
spring源码---ClassPathXmlApplicationContext-super(parent)详解
目录spring整体流程参考:类图:一直调用super(parent)DefaultResourceLoader:回到AbstractApplicationContext回到AbstractApplicationContext返回到 AbstractRefreshableConfigApplicationContext返回到AbstractXmlApplicationContext然后结束回到ClassPathXmlApplicationContext总结:spring整体流程参考:暂未完成 有了第一原创 2022-03-22 13:08:46 · 265 阅读 · 0 评论 -
spring 循环依赖 (仅供参考)
产生的场景 :A 中有B,B中有A,互相调用 导致循环 :原创 2021-12-04 18:28:23 · 981 阅读 · 0 评论 -
spring源码——finishBeanFactoryInitialization方法(暂未完成)
文章目录暂时记录有空添加原创 2021-11-18 18:22:12 · 331 阅读 · 0 评论