- 博客(8)
- 收藏
- 关注
原创 Spring循环依赖
文章目录一、为什么要用三级缓存解决1.不用一、二级缓存2.不用二级缓存3.不用三级缓存4.三级缓存存普通对象,get的时候再产生代理 一、为什么要用三级缓存解决 1.不用一、二级缓存 方案:getBean时三级缓存和二级缓存做的事情合并,创建出代理类但没有填充属性的Bean 结论:多线程下,取到没有加载完成的Bean 2.不用二级缓存 方案:每次都用三级缓存创建代理对象 结论:B、C同时依赖A,但是通过动态代理创建出了两个不同的对象 3.不用三级缓存 方案:加入三级缓存里的逻辑直接变成 创建好代理对象后加
2022-02-19 18:13:05 184 1
原创 Spring AOP实现原理
入口:META/spring.handlers中配置了aspectj-autoproxy的解析类为AopNamespaceHandler,当在xml配置时,会找到这个handler,并执行init方法 一、前提,注册解析器 1.注册AspectJAutoProxyBeanDefinitionParser解析类 2.扫描Element时,逐级调用注册AspectJAutoProxyBeanDefinitionParser的parse方法->AopNamespaceUtils.registerAspect
2022-02-12 18:42:32 165
原创 面试题整理
文章目录一、Spring二、Springboot三、Dubbo四、多线程五、Mysql六、JVM七、集合八、数据结构九、Es十、Redis十一、Netty 一、Spring IOC(一定会生成代理吗、循环依赖) AOP 事务如何实现(事务失效场景) Byname和ByType区别 二、Springboot auto-configure原理 三、Dubbo 四、多线程 五、Mysql 六、JVM 七、集合 八、数据结构 九、Es 十、Redis 十一、Netty ...
2022-02-12 18:18:52 516
原创 生产者如何调用到真正的实现
文章目录前言一、生产者如何暴露在Zookeeper上二、使用步骤1.引入库2.读入数据总结 前言 主要描述生产者和消费者是如何通过netty进行通信的 一、生产者如何暴露在Zookeeper上 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('
2022-01-30 14:41:50 545
原创 为什么要用Dubbo
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、Dubbo的功能二、Rpc比Http的优势三、Netty的优势 一、Dubbo的功能 1 2 二、Rpc比Http的优势 1 2 三、Netty的优势 1 2 ...
2022-01-20 17:10:41 1605
原创 Dubbo @Reference是怎么进行Rpc通讯的
文章目录一、创建出代理类1.在加载bean的时候扫描含@Reference注解的属性2.注入代理对象二、创建出的代理类如何完成的调用总结 一、创建出代理类 1.在加载bean的时候扫描含@Reference注解的属性 ReferenceAnnotationBeanPostProcessor间接实现InstantiationAwareBeanPostProcessor接口,重写postProcessPropertyValues方法 protected void populateBean(String be
2022-01-17 21:57:26 431
原创 Dubbo SPI扩展
文章目录一、基本注解1. @SPI2. @Activate2.1 作用:在调用getExtension时会缓存下来,用于后面寻找生效的实现类,并完成包装2.2 项目中用到getExtension的地方2.3 getActivateExtension也会触发缓存2.4 getActivateExtension的作用3. @Adaptive3.1 相关调用链路总结 一、基本注解 1. @SPI 标注在接口层面上,在使用ExtensionLoader.getExtensionLoader(Class type
2022-01-15 14:47:28 1681
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人