![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java开发
花开春还来
这个作者很懒,什么都没留下…
展开
-
秒杀架构设计
业务介绍什么是秒杀?通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束。这种秒杀,对时间不是特别严格,只要下手快点,秒中的概率还是比较大的。淘宝以前就做过一元抢购,一般都是限量 1 件商品,同时价格低到「令人发齿」,这种秒杀一般都在开始时间 1 到 3 秒内就已经抢光了,参与这个秒杀一般都是看...转载 2018-07-10 16:35:59 · 260 阅读 · 0 评论 -
MyBatis一级缓存和二级缓存
MyBatis自带的缓存有一级缓存和二级缓存一级缓存Mybatis的一级缓存是指Session缓存。一级缓存的作用域默认是一个SqlSession。Mybatis默认开启一级缓存。 也就是在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查询,并写到缓存中; 第二次以后是直接去缓存中取。 当执行SQL查询中间发生了增删改的操作,MyBatis会把SqlSession的缓存清...转载 2018-07-10 16:52:20 · 184 阅读 · 0 评论 -
springmvc工作原理以及源码分析(基于spring3.1.0)
springmvc是一个基于spring的web框架.本篇文章对它的工作原理以及源码进行深入分析. 一、springmvc请求处理流程 二、springmvc的工作机制 三、springmvc核心源码分析 四、谈谈springmvc的优化 一、springmvc请求处理流程 引用spring in action上的一张图来说明了springmvc的核心组件和请求处理流程: ...转载 2018-07-23 15:48:26 · 324 阅读 · 0 评论 -
Mybatis之工作原理
1.Mybatis的架构 1.1 Mybatis的框架分层 1.2 MyBatis的实现原理 mybatis底层还是采用原生jdbc来对数据库进行操作的,只是通过 SqlSessionFactory,SqlSession Executor,StatementHandler,ParameterHandler,ResultHandler和TypeHandler等几个处理器封装了这些过程...转载 2018-07-23 16:41:30 · 306 阅读 · 0 评论 -
Mybatis中的拦截器并使用拦截器实现分页
Mybatis 拦截器介绍 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。打个比方,对于Executor,Mybatis中有几种实现:BatchExe...转载 2018-07-23 17:21:18 · 1875 阅读 · 0 评论 -
乐观锁与悲观锁简介
在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernat...转载 2018-07-23 18:35:28 · 218 阅读 · 0 评论 -
Java多线程中锁的理解与使用
1.简介 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等 ) 。 2.Java锁的种类 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的...转载 2018-08-06 14:47:56 · 561 阅读 · 0 评论 -
NIO技术使用场景
NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector。传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。Selector(选择区)用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个线程可以监听多个数据通道。 NIO和传统IO(一下简称IO)之间...转载 2018-08-06 17:13:06 · 854 阅读 · 0 评论 -
Java 8 函数式编程探秘 ( 上 )
引子 将行为作为数据传递 怎样在一行代码里同时计算一个列表的和、最大值、最小值、平均值、元素个数、奇偶分组、指数、排序呢? 答案是思维反转!将行为作为数据传递。 文艺青年的代码如下所示: public class FunctionUtil { public static <T,R> List<R> multiGetResult(List<Func...转载 2018-11-14 15:23:02 · 313 阅读 · 0 评论