mybatis代理对象的创建过程 在上一遍 mybatis源码分析(二):mybatis在执行SQL语句之前都做了什么[//www.greatytc.com/p/c...
mybatis代理对象的创建过程 在上一遍 mybatis源码分析(二):mybatis在执行SQL语句之前都做了什么[//www.greatytc.com/p/c...
SqlSessionFactory构建过程 在上一遍我们通过JDK的动态代理简单实现了一个“mybatis框架”(mybatis源码分析(一):自己动手写一个简单的mybai...
框架解决了什么问题 目前主流的Java Web项目都采用SSM(spring springmvc mybatis)框架,其中mybatis框架源码是最简单的,想入手源码学习的...
Spring有两大核心,IOC和AOP。IOC在spring项目中基本无处不在,而AOP则用的基本比较少。 AOP(Aspect Oriented Programming),...
spring框架在整个java体系中属于教科书般的存在,理解spring读懂spring是每一个javaer在成长路上都必须迈过去的一步。但是spring源码晦涩难懂,类关系...
Redisson分布式锁提供了WatchDog功能,如果你使用了分布式锁且没有设置超时时间Ression会为你设置一个默认的超时时间,且在你没有主动释放锁之前会不断续期。这样...
什么情况下需要搭建redis主从架构 官方表明redis单机的读速度是110000次/s,写速度是81000次/s。但随着客户端连接数的增加redis的性能会逐步递减,这个时...
要知道redis是有消息的发布和订阅功能的,我们可以利用它的发布和订阅功能非常简单地实现一些比较实用的功能。 打个比方,如何实现自动关闭超时未支付的订单? 我们通常的做法是写...
Semaphore Semaphore被翻译成信号量,他是并发编程领域得一大利器。信号量模型比较简单,可以概况为:一个计数器,一个等待队列,三个方法。其中这三个方法分别是:i...
消息队列的使用场景 消息队列做为中间件在大型系统中使用非常广泛,典型的使用场景有四种:异步处理,应用解耦,流量削锋和消息通讯四个场景。 1.异步处理 异步处理是指一个业务操作...
简单介绍一下RabbitMQ安装和使用,这里使用docker安装RabbitMQ3.7版本。 docker安装rabbitmq 下载rabbitmq镜像,官方rabbitmq...
Map是一个"Key Value"数据结构的集合,在Java企业级项目里使用频率非常高,仅次于List。 Map大家族里面成员非常多,有HashMap,TreeMap,Lin...
JVM一共分为五个区域,虚拟机栈、本地方法栈、方法区、堆、程序计数器。一个Java应用在开始运行的时候就会被分解成不同的数据被放到这五个区域里,要想理解JVM内存结构图我们就...
在Java多线程开发中死锁问题并不少见,当线程间相互等待资源,而又不释放自身的资源时就会导致无穷无尽的等待。 举一个死锁的例子 以上是一个转账的例子,两个账户相互转账,转账时...
Redis是基于内存的数据库,为了保证数据的可用性Redis提供了两种数据持久化机制:RDB和AOF。这里来介绍一下。 RDB模式 RDB模式是通过快照的方式持久化,也就是每...
redis是一个nosql数据库,由于高性能的存储能力常用来做分布式缓存中间件。 以下是linux centos7下安装了redis5.x单机版来作为参考,全部使用root用...
在传统业务中我们的数据库都是单机的,数据库本身就提供了ACID。但随着业务的增长我们需要分库分表将数据放到多个数据库中,这个时候单个库的事务就无法满足需求了,就需要理解和掌握...
BeanFactory和FactoryBean直面翻译过来的意思是“Bean”工厂和工厂“Bean”,其中"bean"在spring中的意思是类的实例,也就是说这两个类分别是...