- 博客(8)
- 收藏
- 关注
原创 Consumer服务调用源码
AsyncToSyncInvoker, 异步转同步:dubbo 2.7.3 引⼊了InvokeMode(1.SYNC同步, 2.ASYNC异步,3.FUTURE调⽤ future.get()时会造成线程阻塞) 在消费者端进⾏调⽤时先判断是否是同步调⽤,如果是同步的话,通过asyncResult.get()获得 结果。ListenerInvokerwrapper, dubbo在服务暴露(exporter)以及销毁暴露(unexporter)服务的过程中提供了回调窗⼝,供⽤ 户做业务处理。
2024-10-24 17:35:20
217
原创 Spring源码解析--容器
BeanFactory 体系 (获得工厂具有的功能) 查找对象 创建对象(注入)存储 BeanDefinitionMap(注册BeanDefinition对象)1.也是BeanFactory的子接口 具有BeanFactory对应的功能。XXXRegister 注册 (注册-->储存)2.对BeanFactory进行扩展。
2024-08-01 16:26:43
369
原创 Spring源码解析--工厂
以mvc标签为例(1)进入自定义标签解析(2)核心代码(3)通过spring.handlers文件中的url找到MVC标签的Handler(4)在handler中调用init()方法指定各个标签的解析类。
2024-08-01 15:48:10
706
原创 mybatis拦截器开发(手写分页插件)
MetaObject --> Mybatis底层封装的反射工具类,便于Mybatis中通过反射操作一个对象。拦截的是Executor(方法 + 参数),StatementHandler(方法 + 参数)对于Sql语句的操作我们可以使用JSqlparser,简化对sql语句的操作。eg.分页(干预SQL,统一处理),乐观锁(版本对比)1)类implements Interceptor。2.需要统一的处理 多个Mappering文件。作用:深度定制mybatis的开发。1.需要干预Mybatis的SQL。
2024-06-17 21:20:42
634
1
原创 Mybatis源码缓存的实现
3.读取 整合<cache <property> 增加额外的参数(内置缓存不用,自定义缓存 redis,osCache,Ehcache)在多表查询使用Cache时,避免脏数据的产生,需要使用<cache-ref>来关联xxxMapper.xml文件,使其共用一个Cache集合。但是当关联的表多了之后,会出现一个表的数据更改导致所有表的数据删除问题,所以我们要修改源码,当修改特定表的数据时只删除和该表有关联的缓存数据。内存大,但是网络开销大(通过网络连接)程序 --> 缓存 --> 数据库。
2024-06-11 17:51:03
1093
1
原创 Mybatis核心源码分析
Mybatis封装了JDBC Statement,StatementHandler是真正Mybatis进行数据库访问操作的核心。封装的是XXXMapper.xml文件中对数据库操作的标签1.解析 mybatis-config.xml --> Configuration对象。目的:将Mybatis参数转换为JDBC使用的参数。1.封装了mybatis-config.xml。对应的就是mapper.xml中 的一个标签。
2024-06-08 16:23:44
1710
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人