- 博客(8)
- 收藏
- 关注
原创 Spring循环依赖
文章目录一、为什么要用三级缓存解决1.不用一、二级缓存2.不用二级缓存3.不用三级缓存4.三级缓存存普通对象,get的时候再产生代理一、为什么要用三级缓存解决1.不用一、二级缓存方案:getBean时三级缓存和二级缓存做的事情合并,创建出代理类但没有填充属性的Bean结论:多线程下,取到没有加载完成的Bean2.不用二级缓存方案:每次都用三级缓存创建代理对象结论:B、C同时依赖A,但是通过动态代理创建出了两个不同的对象3.不用三级缓存方案:加入三级缓存里的逻辑直接变成 创建好代理对象后加
2022-02-19 18:13:05
314
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
210
原创 面试题整理
文章目录一、Spring二、Springboot三、Dubbo四、多线程五、Mysql六、JVM七、集合八、数据结构九、Es十、Redis十一、Netty一、SpringIOC(一定会生成代理吗、循环依赖)AOP事务如何实现(事务失效场景)Byname和ByType区别二、Springbootauto-configure原理三、Dubbo四、多线程五、Mysql六、JVM七、集合八、数据结构九、Es十、Redis十一、Netty...
2022-02-12 18:18:52
687
原创 生产者如何调用到真正的实现
文章目录前言一、生产者如何暴露在Zookeeper上二、使用步骤1.引入库2.读入数据总结前言主要描述生产者和消费者是如何通过netty进行通信的一、生产者如何暴露在Zookeeper上二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('
2022-01-30 14:41:50
585
原创 为什么要用Dubbo
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Dubbo的功能二、Rpc比Http的优势三、Netty的优势一、Dubbo的功能12二、Rpc比Http的优势12三、Netty的优势12...
2022-01-20 17:10:41
1750
原创 Dubbo @Reference是怎么进行Rpc通讯的
文章目录一、创建出代理类1.在加载bean的时候扫描含@Reference注解的属性2.注入代理对象二、创建出的代理类如何完成的调用总结一、创建出代理类1.在加载bean的时候扫描含@Reference注解的属性ReferenceAnnotationBeanPostProcessor间接实现InstantiationAwareBeanPostProcessor接口,重写postProcessPropertyValues方法 protected void populateBean(String be
2022-01-17 21:57:26
518
原创 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
1805
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人