GDUT_Ember
码龄5年
关注
提问 私信
  • 博客:141,615
    141,615
    总访问量
  • 190
    原创
  • 2,354,490
    排名
  • 875
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2020-08-27
博客简介:

GDUT_Trim的博客

查看详细资料
个人成就
  • 获得106次点赞
  • 内容获得117次评论
  • 获得412次收藏
  • 代码片获得228次分享
创作历程
  • 190篇
    2021年
成就勋章
TA的专栏
  • Spring
    19篇
  • MyBatis
    18篇
  • 计网
    3篇
  • 分布式
    3篇
  • JVM
    7篇
  • 总结与规划
    1篇
  • Java并发
    16篇
  • java
    20篇
  • 设计模式
    7篇
  • LeetCode
    4篇
  • yonyou
    5篇
  • java集合框架
    5篇
  • MySQL牛客编程题
    2篇
  • git
    2篇
  • Redis
    40篇
  • Innodb
    23篇
  • 笔记
    2篇
  • Shiro
    1篇
  • SpringBoot
    1篇
  • mysql
    9篇
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MyBatis(技术NeiMu):核心处理层(Executor)

回顾Executor模板方法BaseExecutor一级缓存一级缓存简介一级缓存的管理CacheKey如何生成重载的query方法update方法的细节一级缓存清空的情况事务相关操作的细节回顾前面我们看了MyBatis的StatementHandler,而StatementHandler是用于跟数据库进行交互的,并且完成调用ResultSetHandler完成结果集的映射,并且StatemenHandler采用了一个装饰者模式,实际上得到的所有StatementHandler都是RoutingStat.
原创
发布博客 2021.12.16 ·
1006 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

计网总结(网络层)

网络层总结(IP协议簇)知识点网络层主要的协议IP地址形式的发展IPV4数据报格式路由算法无子网划分时的路由算法出现子网划分时的路由算法形成超网之后的路由算法网络层的协议ARP协议ICMP协议路由选择协议内部网关协议RIPOSPF外部网关协议BGPIPV6IPV4如何过渡到IPV6网络层总结(IP协议簇)知识点知识点如下ARP、ICMP、ICGP协议,重点在于ARP和ICMPIP地址的分类、IP地址组成、IP地址的演化IPV4数据报格式无子网划分的路由器的分组转发算法子网划分、子网划分之.
原创
发布博客 2021.12.15 ·
3138 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

计网总结(传输层)

知识点多路复用与解复用UDPTCP可靠传输的实现RDT停止等待协议连续ARQ协议GBN协议SR协议GBN协议与SR协议的区别TCP实现可靠传输GBN的实现SR的实现流量控制拥塞控制TCP的报文段TCP的可靠连接为什么是三次握手,两次行不行,四次、五次呢?TCP的连接释放传输层在网络层提供的服务基础上,实现了端对端之间的服务知识点UDPTCPUDP和TCP如何实现复用和解复用TCP如何实现可靠传输、流量控制、拥塞控制TCP的连接建立与连接拆除,通俗来说就是三次握手、四次挥手总的来说,能把.
原创
发布博客 2021.12.15 ·
1805 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

MyBatis(技术NeiMu):核心处理层(StatementHandler)

回顾StatementHandlerRoutingStatementHandlerBaseStatementHandlerParameterHandlerDefaultParameterHandlerSimpleStatementHandler创建Statement执行查询执行修改PrepareStatementHandler创建Statement执行查询执行修改绑定实参CallableStatementHandler回顾StatementHandlerStatementHandler接口是MyBa.
原创
发布博客 2021.12.12 ·
1343 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

# MyBatis(技术NeiMu):核心处理层(ResultSetHandler)

回顾ResultSetHandlerDefaultResultSetHandlerhandlerResultSets方法ResultSet的迭代过程ResultSetWrapper构造方法映射回顾前面我们已经了解了MyBatis的整个初始化过程,与SQL节点的解析与SQL节点的SQL是如何与实参进行绑定起来、如何根据实参进行动态拼接,下面来看一下MyBatis是如何处理结果集的ResultSetHandlerMyBatis会根据SQL映射配置文件中定义的映射规则,比如resultMap标签、res.
原创
发布博客 2021.12.12 ·
1448 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(技术NeiMu):核心处理层(SqlNode和SqlSource)

回顾SqlNode与SqlSourceSqlSource组合模式OGNL表达式OgnlCacheDynamicContextContextMapSqlNodeMixedSqlNodeStaticSqlNodeTextSqlNodeSqlSourceBuilderParameterMappingTokenHandlerParameterMappingBoundSqlDynamicSqlSource总结一下动态SQL的解析拓展:${}和#{}的区别RawSqlSource回顾前面我们已经看了整个MyBat.
原创
发布博客 2021.12.12 ·
1219 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

MyBatis(技术NeiMu):核心处理层(SQL映射配置文件解析:select、insert、update、delete标签的解析)

回顾buildStatementFromContextSqlSourceMappedStatementMapperStatementBuilder的parseStatementNode方法刷新缓存与使用缓存解析include标签解析selectKey标签LangDriverNodeHandler解析SQL总结一下Mapper的解析过程绑定Mapper接口处理incomplete*集合回顾前面我们已经看了SQL映射配置文件上的一些核心标签是如何解析的了,同时也认识了二级缓存的构建过程,下面来看一下对于s.
原创
发布博客 2021.12.12 ·
1088 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(技术NeiMu):核心处理层(SQL映射配置文件解析)

回顾XMLMapperBuilder判断SQL映射文件是否已经解析过解析mapper标签解析cache子标签解析cache-ref子标签解析parameterMap子标签解析resultMap子标签ResultMapping对象ResultMap对象其他标签的处理constructor标签的处理Resolve处理解析SQL子标签回顾上一章我们已经分析了,MyBatis是如何进行初始化的了,采用建造者模式去创建出Configuration,创建者主要是XMLConfigBuilder,指挥者为SqlSe.
原创
发布博客 2021.12.12 ·
1497 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(技术NeiMu):核心处理层(MyBatis的初始化)

回顾核心处理层MyBatis初始化建造者模式初始化!BaseBuilder!XMLConfigBuilderparseConfiguration解析Properties标签解析settings标签加载vfs加载logImpl解析typeAlias标签解析plugins节点解析objectFactory标签解析ObjectWrapperFactory标签解析reflectorFactory标签对settings剩下的子标签的解析解析environments标签解析databaseIdProvider标签解析.
原创
发布博客 2021.12.12 ·
854 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈缓存与数据库的一致性问题

前言面试经常问缓存与数据库的数据如何保持一致性,很有必要研究一下这个问题,首先提前声明,以下分析都是要基于提高吞吐量的前提下进行,要是抛弃吞吐量这个前提,最直接的办法就是上分布式锁,让所有读写请求都串行化,肯定可以解决了数据库的一致性问题,但吞吐量就很显然会下降!本质个人觉得,解决缓存与数据库不一致性的问题可以细分为下面这两个问题操作数据库肯定是更新数据,那么操作缓存是更新数据还是删除数据呢?先操作数据库还是先操作缓存呢?下面我们逐个问题进行分析Cache的写机制和读机制我们首先要对现在
原创
发布博客 2021.11.25 ·
826 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(技术NeiMu):基础支持层(类型转换、日志模块与类加载模块)

回顾MetaObject类型转换TypeHandlerTypeHandlerRegistry注册TypeHandler对象TypeAliasRegistry注册别名日志模块设计模式——六大原则日志适配器类加载模块ResolverUtilIsAAnnotatedWithVFS回顾上一篇分析了几个反射工具,还有对类数据的封装MetaClass,对实例数据的封装ObjectWrapper和创建ObjectWrappe的ObjectWrapperFactoryMetaObjectObjectWrapper.
原创
发布博客 2021.11.21 ·
861 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

# MyBatis(技术NeiMu):基础支持层(Transaction与Binding)

回顾TransactionJdbcTransaction获取连接提交、回滚、关闭ManagedTransactionTransactionFactoryJdbcTransactionFactoryManagedTransactionFactorybinding模块MapperRegistry注册Mapper与对应的MapperProxyFactory获取Mapper接口的代理对象MapperProxyFactoryMapperProxyPlainMethodInvokerMapperMethodSqlCo.
原创
发布博客 2021.11.21 ·
1080 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(技术NeiMu):基础支持层(DataSource)

回顾DataSourceDataSourceFactoryUnpooledDataSourceFactoryPooledDataSourceFactoryJndiDataSourceFactoryJNDIUnpooledDataSourcegetConnectioninitializeDriverDriverManager.getConnectionconfigureConnectionPooledDataSourcePooledConnectionPoolStatePooledDataSource的其他.
原创
发布博客 2021.11.21 ·
1695 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(技术NeiMu):基础支持层(Property工具集)

回顾Property工具集PropertyTokenizerPropertyNamerPropertyCopierMetaClassbuildPropertyhasGetter和hasSetterObjectWrapper和ObjectWrapperFactoryObjectWrapperCollectionWrapperBaseWrapperresolveCollectiongetCollectionValuesetCollectionValueObjectWrapperFactory回顾上一篇分析.
原创
发布博客 2021.11.21 ·
657 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(技术NeiMu):基础支持层(解析器模块与反射模块)

回顾基础支持层解析器模块XPathParsercommonConstructorcreateDocumenteval方法针对evalString的特殊处理反射模块Reflector和ReflectorFactoryReflectorgetDefaultConstructor方法addGetMethods方法addSetMethods方法addFields方法最后的处理ReflectorFactoryfindForClass回顾前面我们已经认识了MyBatis的整体架构,下面就从下往上去了解一下具体的细.
原创
发布博客 2021.11.21 ·
764 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MyBatis(技术NeiMu):基础支持层(类型转换模块与ObjectFactory)

回顾类型转换模块TypeParameterResolver解析字段类型的——resolveFieldType解析方法参数列表中各个参数的类型——resolverParamTypes解析方法返回值的类型——resolverReturnTyperesolveTypeType接口resolverParameterizedTyperesolverTypeVarObjectFactorycreate(Class type)create(Class type,List......)处理集合接口确定好类型后创建对象回.
原创
发布博客 2021.11.21 ·
459 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MyBatis(技术NeiMu):整体架构

ORMMyBatis的整体架构基础支持层核心处理层接口层ORM什么是ORM呢?首先我们来认识一下JDBC,JDBC是Java与数据库交互的统一API,其实JDBC分为两组API一组是面向Java应用程序开发人员的API另一组是面向数据库驱动程序开发人员的API这两组怎么进行区分呢?前者是一个标准的Java API,是独立于各个数据库厂家来实现的;而后者则是交由数据库驱动开发人员用于编写数据库驱动的,是前者的底层支持,不同的数据库会有不同的API回顾正题ORM是指Object Rela.
原创
发布博客 2021.11.21 ·
1053 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Spring(二十):ObjenesisCglibAopProxy

回顾ObjenesisCglibAopProxy拦截器链如何形成自定义拦截CglibMethodInvocation回顾上一章仔细分析了Spring对于JDK代理的代理类的invoke方法,也填下了之前没有接触AOP导致循环依赖未彻底弄明白的坑,下面就认识一下Spring对于Cglib代理是如何实现的ObjenesisCglibAopProxy仍然都是由ObjenesisCglobAopProxy创建的可以看到其构建方法仅仅只是初始化了父类而已拓展:这里拓展一下之前是如何使用Cglib代理.
原创
发布博客 2021.11.03 ·
679 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Spring(十八):AOP——寻找匹配的增强器

回顾返回AbstractAdvisorAutoProxyCretorfindAdvisorsThatCanApplyAopUtilscanApply方法AOP——创建切面createProxy方法封装Advisors创建代理creatAopProxt回顾上一篇,我们已经看了如何AOP如何对标签进行解析,并且生成了一系列的增强器,比如建言增强器、同步实例化增强器、DeclaredParent增强器,但找到这些增强器并不一定都适用,还要进行匹配的返回AbstractAdvisorAutoProxyCre.
原创
发布博客 2021.11.02 ·
514 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring(十九):AOP代理——JdkDynamicAopProxy、填坑:AOP代理与上循环依赖

回顾JdkDynamicAopProxy曝光代理对象拦截器链的执行填坑:AOP曝光与创建Bean时的曝光getProxy回顾之前我们已经详细说明了Bean是如何被代理的,最终Bean会被解析成JdkDynamicAopProxy或者ObjenesisCglibAopProxy对象了,对应JDK代理和Cglib代理,下面就来仔细看看这两个对象吧还是回到之前DefaultAopProxyFactory的createAopProxy这里的config已经有了之前解析出来的增强器和拦截器了(一个总的数组.
原创
发布博客 2021.11.02 ·
1453 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多