自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 MyBatis之数据源

DataSourceFactory是数据源工厂,两个子类是PooledDataSourceFactory和UnpooledDataSourceFactory,唯一的区别是,PooledDataSourceFactory的构造函数初始化的是PooledDataSource。PooledDataSource和UnpooledDataSource都是DataSource的实现类。PooledData...

2019-06-18 08:12:50 2301

原创 Mybatis之分页插件

PageInterceptor上面的@Intercepts注解和@Signature注解,会确定需要拦截的类和方法,然后使用动态代理为Executor创建代理对象。拦截的具体逻辑是在intercept方法里面: public Object intercept(Invocation invocation) throws Throwable { try { //...

2019-06-15 21:10:47 154

原创 MyBatis之ResultSetHandler

ResultSetHandler 会负责映射select语句查询得到的结果集,public interface ResultSetHandler { //生成对应的结果对象集合 <E> List<E> handleResultSets(Statement stmt) throws SQLException;//生成对应的游标对象 <E> Curs...

2019-06-15 10:14:06 1131

原创 MyBatis之初始化

MyBatis初始化的主要工作是加载并解析mybatis-config.xml配置文件、映射配置文件以及相关的注解信息。MyBatis初始化的入口是 SqlSessionFactoryBuilder#build(Reader reader, String environment, Properties properties) public SqlSessionFactory build(Re...

2019-06-15 10:08:56 147

原创 MySQL之自增主键为什么不是连续的?

自增主键为什么不是连续的?在 MySQL 5.7 及之前的版本,自增值保存在内存里,并没有持久化。每次重启后,第一次打开表的时候,都会去找自增值的最大值 max(id),然后将 max(id)+1 作为这个表当前的自增值。在 MySQL 8.0 版本,将自增值的变更记录在了 redo log 中,重启的时候依靠 redo log 恢复重启之前的值。在 MySQL 里面,如果字段 id 被定...

2019-06-09 09:28:57 1107

原创 Linux之磁盘性能指标有哪些?

磁盘性能指标有哪些?使用率、饱和度、IOPS、吞吐量以及响应时间等。这五个指标,是衡量磁盘性能的基本指标。使用率,是指磁盘处理I/O的时间百分比。过高的使用率(比如超过80%),通常意味着磁盘 I/O 存在性能瓶颈。饱和度,是指磁盘处理 I/O 的繁忙程度。过高的饱和度,意味着磁盘存在严重的性能瓶颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求。IOPS(Input/Outpu...

2019-06-09 09:28:18 950

原创 Mybatis基础支持层之反射工具箱

Reflector是Mybatis中反射模块的基础,每个Reflector对象都有对应一个类。 //对应的Class类型 private Class<?> type; //getter属性的名称集合 private String[] readablePropertyNames = EMPTY_STRING_ARRAY; //setter属性的名称集合 privat...

2019-06-09 09:18:55 95

原创 Mybatis之整体架构

传统JDBC流程:注册数据库驱动类,指定数据库URL地址、用户名、密码等连接信息通过 DriverManager 打开数据库连接通过数据库连接创建 Statement 对象通过 Statement 对象执行SQL语句,得到ResultSet对象通过ResultSet读取数据,并将数据转换成JavaBean对象关闭ResultSet、Statement对象以及数据库连接,释放资源O...

2019-06-02 19:32:25 134

原创 Spring之IOC容器的实现

控制反转:依赖对象的获得被反转了,即依赖注入。BeanDefinition用来管理基于Spring的应用中的各种对象以及它们之间的相互依赖关系。抽象了我们对Bean的定义,是让容器起作用的主要数据模型。依赖反转功能都是围绕对BeanDefinition的处理来完成的。编程式使用IOC容器的过程: ClassPathResource resource = new ClassPathRes...

2019-06-02 17:40:56 87

原创 Redis阻塞问题

导致Redis阻塞分为内在原因和外在原因:内在原因:不合理使用API或数据结构、CPU饱和、持久化阻塞等外在原因:CPU竞争、内存交换、网络问题等定位慢查询Redis原生提供慢查询统计功能,执行 showlog get {n} 命令可以获取最近n条慢查询命令,Redis默认记录仪执行超过10毫秒的记录。...

2019-06-01 17:01:05 662

原创 Redis之持久化

RDB:RDB持久化是把当前进程数据生成快照保存到硬盘的过程,分为手动触发和自动触发。手动触发:bgsave,会fork一个子进程,持久化过程由子进程负责,save由于会阻塞因此已经废弃。自动触发:Redis一些内部机制会触发。RDB优缺点:优点:紧凑压缩的二进制文件,适合于备份,全量复制的场景。加载RDB恢复数据远快于AOF缺点:不能做到实时持久化,原因是fo...

2019-06-01 14:56:16 68

原创 Redis之Redis Cluster集群方案

数据分布:分布式数据库首先需要解决的是,把整个数据集按照分区规则映射到多个节点的问题,常见的分区规则有哈希分区和顺序分区。哈希分区:离散度好数据分布业务无关无法顺序访问顺序分区:离散度倾斜数据分布业务相关可以顺序访问Redis Cluster 采用的是哈希分区:常见的哈希分区方案:节点取余优点是简单,缺点是当节点数量变化时,数据节点映射关系需要重新计算,会导致数...

2019-06-01 11:23:41 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除