- 博客(13)
- 收藏
- 关注

原创 JDBC美好的回忆
JDBC初体验JDBC简介JDBC的核心执行流程Statement简介代码演示JDBC简介在ORM框架横行的时代,对JDBC的一些操作和概念开始模糊了。为了唤起我们曾经没好的会议,这里和大家回顾一下JDBC的一些核心概念和简单的一些操作。JDBC的核心执行流程Statement简介代码演示...
2020-06-11 13:10:57
312
原创 Bean工程后置处理器
BeanFactoryPostProcessorBeanDefinitionRegistryPostProcessorBeanFactoryPostProcessor扫描和手动提供BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor演示Spring提供了BeanFactoryPostProcessor接口,实现BeanFactoryPostProcessor执行时机是在BeanDefinition扫描完成,bean还没有开始创建的时候执行
2020-10-05 10:00:16
279
原创 bean的建模基石beanDefinition
Spring bean和java beanspring bean: Spring bean 是被Spring容器管理的对象,经过了spring bean的完整生命周期从xxx.class文件到BeanDefinition,通过BeanDefinition反射创建对应的实例,并按照Spring的流程初始化bean的属性等操作,最终放到spring容器中的bean。**java bean:**通过java语法创建出来的bean,这里包括spring bean。Spring的bean和java bean的过
2020-09-07 23:36:43
211
原创 ConcurrentHashMap
数据结构:ConcurrentHashMap的数据结构与HashMap基本类似,区别在于:1、内部在数据写入时加了同步机制(分段锁)保证线程安全,读操作是无锁操作;2、扩容时老数据的转移 是并发执行的,这样扩容的效率更高。并发控制:1、JDK1.7基于ReentranLock实现分段锁;2、JDK1.8基于分段锁+CAS保证线程安全分段锁基于synchronized关键字实现。源码分析:ConcurrentHashMap由三部分构成, table+链表+红黑树, 其中table是一个数组,
2020-08-30 22:27:09
277
原创 缓存穿透、缓存击穿、缓存雪崩
缓存穿透、缓存击穿、缓存雪崩概念解决方案分析总结在分布式缓存需要解决缓存一致性、缓存淘汰、缓存高可用等问题。还有常见的缓存穿透、缓存击穿、缓存雪崩这些问题需要解决和处理。我们这里就对缓存穿透、缓存击穿、缓存雪崩进行解释和研究。概念缓存穿透:缓存穿透是指大量的不存在的数据查询数据没有命中缓存,直接查询到数据库。这样会导致数据查询量增大,数据库压力会增加,影响到系统的整体性能。缓存击穿:缓存击穿是指在同一时间大量的查询同一个key时,由于某些原因key失效了,导致所有的查询都查询数据库。这里需要注意的关
2020-07-08 17:18:43
434
1
原创 Mybatis的循环引用
Mybatis的循环引用及关联查询循环引用关联查询二级目录三级目录Mybatis中对循环引用及关联查询都做了很好的处理。博主觉得这块非常难。这里只是把我知道的讲出来。循环引用什么循环引用博主这里就不介绍了。网上一大堆例子。熟悉Spring的都知道Spring中也有循环引用。Mybatis循环引用和Spring中的循环引用一样。解决办法也基本相同。框架解决方法相同点不同点Mybatis空占位符、延迟加载(放在一级缓存中)居于缓存解决mybatis只用了一个缓存、并且发现循
2020-06-27 09:41:19
3155
4
原创 Mybatis 插件开发
Mybatis 插件开发插件注意事项插件机制三级目录插件注意事项一个好的插件有几点需要注意:1、易用,不需要别的配置。2、不限制用户使用方式。3、做出友好提示。插件机制Mybatis在创建执行器、参数处理器、Statement处理器、结果处理器四个环节提供了接口扩展,我们可以轻松的对以上处理器进行修改,来满足我们的业务要求。我们接下来看下这个创建执行器、处理器时候的代码。首先要实现对三级目录...
2020-06-23 18:55:58
425
原创 Mybatis 处理器Handler分类及介绍
Handler分类及介绍处理器定位ParameterHandlerResultSetHandlerStatementHandler二级目录三级目录处理器定位前面我们分析过Mybatis的Executor,其实执行器还是调用StatementHandler来执行数据库操作。Mybatis中有3种类型的hanlder,分别为StatementHandler、ParameterHandler、ResultSetHandler。ParameterHandler主要解析参数,为Statement设置参数,Resu
2020-06-22 20:53:15
5512
原创 Mybatis一级缓存
Mybatis一级缓存一级缓存命中缓存条件缓存清空条件updae清除缓存SqlSession.clearCache() 清除缓存配置缓存刷新策略提交回滚清除缓存Spring集成Mybatis一级缓存失效总结一级缓存Mybatis中有2种缓存,分别为一级缓存和二级缓存,今天我们来分析Mybatis的一级缓存。我们都只知道,Mybatis中一级缓存的为会话级,缓存跟随着会话消失而销毁。那神秘的一级缓存到底长啥样呢?我们直接上源码。// BaseExecutor里面有个属性localCache就是我们的一级
2020-06-15 18:26:41
371
原创 MyBatis执行器
MyBatis执行器执行器执行器类介绍ExecutorBaseExecutorSimpleExecutorReuseExecutorBatchExecutorCachingExecutor执行器分类MyBatis对SQL语句执行都是通过执行器对Handler进行操作完成Sql查询。下面对Mybatis中的执行器进行简单介绍。执行器在MyBatis中执行器可分为四种,我们先简单看下执行器的类图。SimpleExecutor、BatchExecutor、ReuseExecutor是BaseExecut
2020-06-15 11:36:58
577
原创 MyBatis XML解析及会话创建
Mybatis会话创建简介XML解析过程XML解析解释一级标题二级标题SqlSessionFactoryBuilderSqlSessionFactoryBuilder介绍SqlSessionFactoryXMLConfigBuilderXMLMapperBuilderXMLStatementBuilder会话创建创建会话打开会话获取事物工厂创建事物创建事物执行器嵌入插件构建默认会话简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 J
2020-06-13 18:26:29
604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人