摘要:
转载~ 我们一般都不会去操作数据库本身,「而是通过SQL语句调用MySQL,由MySQL处理并返回执行结果」。那么SQL语句是如何执行sql语句的呢? Sql语句执行过程图解: 从图中可以看出sql的执行基本上分为五步: 「建立连接(Connectors&Connection Pool)」 「查询缓 阅读全文
摘要:
源码很枯燥,但是能学到很多东西,废话不多说直接进入正题: @MapperScan 扫描注入 spring beanDefinition 的流程 在使用注解确认扫包范围的时候 注解里的@Import(MapperScannerRegistrar.class) 引入了 MapperScannerRegi 阅读全文
摘要:
¶ JavaNIO三件套 在 NIO 中有几个核心对象需要掌握:缓冲区(Buffer)、选择器(Selector)、通道(Channel) ¶ 缓冲区Buffer ¶ Buffer操作基本API 缓冲区实际上是一个容器对象,更直接的说,其实就是一个数组,在 NIO 库中,所有数据都是用缓冲区处理的。 阅读全文
摘要:
¶ 概念 ¶ 必须明白的概念 ¶ 阻塞block和非阻塞non-block 阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。 阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。 非阻塞:当我们的进程访问我们的数据缓冲区的时候,如 阅读全文
摘要:
Java开发,总会遇到问三级缓存的。 看了很多文章,感觉不是很透彻。打算自己写一个自以为很详细的对三级缓存的理解。 有图文。也有文字概括。受不了动图的可以看文字概括哦 进入正题: 在开发过程中会遇到循环依赖的问题。 就跟下图一样 Spring在为此设计了三级缓存来解决以上依赖的问题 首先我们得知道 阅读全文
摘要:
废话不多说直接进入正题: @MapperScan 在使用注解确认扫包范围的时候 注解里的@Import(MapperScannerRegistrar.class) 引入了 MapperScannerRegistrar 这个类,然后引入了MapperScannerConfigurer 这个类。进行的扫 阅读全文
摘要:
怎么数据库的分页的不准了?对时间做查询分页的一定要加上排序呀! 我们来观察下以下sql 是否存在问题 SELECT id, orderNo, addTime FROM deal_tab ORDER BY addTime DESC LIMIT 1,20 SELECT * FROM deal_tab w 阅读全文
摘要:
如何自己实现一个自动注入的注解 首先,需要了解到的是。Spring Bean 的生命周期 在生命周期中。注入bean属性的位置是在以下代码:populateBean 位置中 那么我们在项目中使用注解 产生一个bean的时候必定会经过以下代码进行一个bean的创建流程 /**省略代码**/ // 开始 阅读全文
摘要:
在项目中,如何保证幂等性 1.什么是幂等 在我们编程中常见幂等 1)select查询天然幂等 2)delete删除也是幂等,删除同一个多次效果一样 3)update直接更新某个值的,幂等 4)update更新累加操作的,非幂等 5)insert非幂等操作,每次新增一条 2.产生原因 由于重复点击或者 阅读全文
摘要:
前言 日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的地方,欢迎大家指出哈,一起学习一起进步。 什么是分布式锁 方案一:SETNX + EXPIRE 方案二:SETNX 阅读全文