SpringMVC 请求流程源码剖析

一,SpringMVCSpringMVC从Spring家族上来讲,他是基于Spring框架的,或者应该说成是Spring框架的表现层框架。因为这点在下载SpringMVC源码的时候,也是要求依赖于Spring框架的搭建基础上引入的Module。如图所示,在搭建SpringMVC源码时候,是基于之前Spring源码剖析时搭建的框架引入的,SpringMVC的执行流程大致的分为了四步:1,前端控制器DispatchServlet的加载(监听,filter过滤器....),加载指定的配置文件SpringM
分类: 其他 发布时间: 11-23 09:39 阅读次数: 0

SpringMVC九大组件与组件初始化原理

一,九大组件坐标 dispatchServlet/** MultipartResolver used by this servlet. */ //多部件解析器 @Nullable private MultipartResolver multipartResolver; /** LocaleResolver used by this servlet. */ //区域化 国际化解析器 @Nullable private LocaleResolver localeResolver;
分类: 其他 发布时间: 11-23 09:39 阅读次数: 0

SpringBoot依赖管理详解

一,SpringBoot导入dependency不需要指定版本在开发过程中,SpringBoot项目会导入一个父类的dependency,这个依赖是需要去指定一个统一版本的,而这个版本根据实际开发而变更 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<11./artifactId>
分类: 其他 发布时间: 11-23 09:39 阅读次数: 0

SpringBoot自动配置源码剖析

一,自动配置在添加Jar包依赖的时候,自动的去完成一些组件的配置,减少主动配置。SpringBoot 自动配置入口:@SpringBootApplication二,@SpringBootApplication@SpringBootApplication为一个组合注解。上面四个注解用于代表当前注解的元数据信息(适用范围,生命周期, 是否记录JavaDoc,是有可以被继承)。接下来着重看下面的三个注解@Target(ElementType.TYPE) //注解的适用范围,Typ.
分类: 其他 发布时间: 11-23 09:39 阅读次数: 0

SpringBoot 自定义start

一,自定义自动装备Bean:@EnableConfigurationProperties(SimpleBean.class) //开启ConfigurationProperties注解@ConfigurationProperties(prefix = "simplebean")public class SimpleBean { private int id; private String name; public int getId() { retur
分类: 其他 发布时间: 11-23 09:38 阅读次数: 0

SpringBoot run方法原理

SpringBoot通过主程序的Main方法启动,main程序中通过SpringApplication的run方法去启动整个SpringBoot程序一,SpringApplication run方法静态的run方法中重载到了另外一个run方法中,第一步去实例化了SpringApplication对象,传入参数为main方法所在类class对象,然后利用实例化好的SpringApplication对象去执行run方法。二,SpringApplication的实例化1...
分类: 其他 发布时间: 11-23 09:38 阅读次数: 0

MySql 日志文件基本概念

一,错误日志(Error log)用于记录存放严重的警告与错误信息...(默认开启)查看错误日志位置 命令:show variables like '%log_error%';二,通用查询日志(General query log)用于记录查询语句 默认情况下为关闭状态通用查询日志文件路径命令:show variables like '%general%';★三,二进制日志(binary log)用于记录对Mysql数据所有的更改性的操作==》执行的一些更改操作...
分类: 其他 发布时间: 11-23 09:38 阅读次数: 0

MySql数据文件基本概念

db.opt 文件:记录这个库的默认使用的字符集和校验规则。frm 文件:存储与表相关的元数据(meta)信息,包括表结构的定义信息等,每一张表都会有一个frm 文件。MYD 文件:MyISAM 存储引擎专用,存放 MyISAM 表的数据(data),每一张表都会有一个.MYD 文件。MYI 文件:MyISAM 存储引擎专用,存放 MyISAM 表的索引相关信息,每一张 MyISAM 表对应一个 .MYI 文件。ibd文件和 IBDATA 文件:存放 InnoDB 的数据文件(包括索引
分类: 其他 发布时间: 11-23 09:38 阅读次数: 0

Mysql SQL运行机制概述

一,建立连接(Connectors&Connection Pool)
分类: 其他 发布时间: 11-23 09:37 阅读次数: 0

Mysql Innodb存储引擎结构详解

一,Mysql支持的引擎Mysql支持存储引擎
分类: 其他 发布时间: 11-23 09:37 阅读次数: 0

MySql InnoDB线程模型

一,MySQL存储引擎InnoDB存储结构Mysql存储引擎结构详解二,线程模型IO Thread在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。在 InnoDB1.0版本之前共有4个IO Thread,分别是write,read,insert buffer和log thread,后来 版本将read thread和write thread分别增大到了4个,一共有10个了。可以通过show engine inn...
分类: 其他 发布时间: 11-23 09:37 阅读次数: 0

InnoDB 数据文件结构详解

一,InnoDB存储文件结构InnoDB数据文件存储结构: 一个ibd数据文件-->Segment(段)-->Extent(区)-->Page(页)-->Row(行)Tablesapce表空间,用于存储多个ibd数据文件,用于存储表的记录和索引。一个文件包含多个段。 Segment 段,用于管理多个Extent,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(...
分类: 其他 发布时间: 11-23 09:36 阅读次数: 0

InnoDB Undo Log工作与存储机制

一,UndoLogUndo:意为撤销或取消,以撤销操作为目的,返回指定某个状态的操作。Undo Log:数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事务回滚时或者数 据库崩溃时,可以利用 Undo 日志,撤销未提交事务对数据库产生的影响。Undo Log产生和销毁:Undo Log在事务开始前产生;事务在提交时,并不会立刻删除undo log,innodb会将该事务对应的undo log放入到删除列表中,后面会通过后台线程purge thread进 行回收处理。Undo..
分类: 其他 发布时间: 11-23 09:36 阅读次数: 0

InnoDB Redo log 存储机制详解

一,Redo LogRedo:顾名思义就是重做。以恢复操作为目的,在数据库发生意外时重现操作。Redo Log:指事务中修改的任何数据,将最新的数据备份存储的位置(Redo Log),被称为重做 日志。Redo Log 的生成和释放:随着事务操作的执行,就会生成Redo Log,在事务提交时会将产生 Redo Log写入Log Buffer,并不是随着事务的提交就立刻写入磁盘文件。等事务操作的脏页写入 到磁盘之后,Redo Log 的使命也就完成了,Redo Log占用的空间就可以重用(被..
分类: 其他 发布时间: 11-23 09:36 阅读次数: 0

Mysql BinLog存储机制详解与数据恢复

一,BinLogRedo Log 是属于InnoDB引擎所特有的日志,而MySQL Server也有自己的日志,即 Binary log(二进制日志),简称Binlog。Binlog是记录所有数据库表结构变更以及表数据修改的二进制日志,不会记录SELECT和SHOW这类操作。Binlog日志是以事件形式记录,还包含语句所执行的消耗时间。一般情况下,开启Binlog日志有以下两个最重要的使用场景:主从复制:在主库中开启Binlog功能,这样主库就可以把Binlog传递给从库,从库拿到 Bin..
分类: 其他 发布时间: 11-23 09:36 阅读次数: 0

Mysql 索引使用分析:Explain查询分析

explain命令:select_type(查询类型):SIMPLE : 表示查询语句不包含子查询或union PRIMARY:表示此查询是最外层的查询 UNION:表示此查询是UNION的第二个或后续的查询 DEPENDENT UNION:UNION中的第二个或后续的查询语句,使用了外面查询结果 UNION RESULT:UNION的结果 SUBQUERY:SELECT子查询语句 ...
分类: 其他 发布时间: 11-23 09:35 阅读次数: 0

Mysql 事务与锁机制原理详细理解

一,ACID特性I,原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改---》Buffer Pool修改---》刷盘。可能会有下面两种情况:事务提交了,如果此时Buffer Pool的脏页没有刷盘,如何保证修改的数据生效? Redo 如果事务没提交,但是Buffer Pool的脏页刷盘了,如何保证不该存在的数据撤销?Undo每一个写事务,都会修改BufferPool,从而产生相应的Redo/Undo日志,在Buffer Pool 中的页被刷到 磁.
分类: 其他 发布时间: 11-23 09:34 阅读次数: 0

Mysql集群--主从模式

数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默 认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据。一,主从复制主从复制整体分为以下三个步骤:主库将数据库的变更操作记录到Binlog日志文件中 从库读取主库中的Binlog日志文件信息写入到从库的Relay Log中继日志中 从库读取中继日志信息在从库中进行Replay,更新从库数据信息主从复制时序图:Master服务器对数据库更改操作记录在Binlog中,BinlogD..
分类: 其他 发布时间: 11-23 09:34 阅读次数: 0

Mysql集群--双主模式

MySQL主从模式,一主多从、读写分离等。但是单主如果发生单点故障,从库切换成主库还需要作改动。因此,如果是双主或者多主,就会增加MySQL入口,提升了主库的可用性。 因此随着业务的发展,数据库架构可以由主从模式演变为双主模式。双主模式是指两台服务器互为主从,任何一台服务器数据变更,都会通过复制应用到另外一方的数据库中一, 双主双写&是双主单写双主双写存在以下问题:ID冲突在A主库写入,当A数据未同步到B主库时,对B主库写入,如果采用自动递增容易发生ID主键的冲 突...
分类: 其他 发布时间: 11-23 09:34 阅读次数: 0

Mysql 分片,大数据量时扩容方案

分片概念:分片(Sharding)就是用来确定数据在多台存储设备上分布的技术。Shard这个词的意思是“碎片”,如 果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片(Database Sharding)。将一个数据库打碎成多个的过程就叫做分片,分片是属于横向扩展方案。分片与分表的区别:分片:表示分配过程,是一个逻辑上概念,表示如何实现。分库分表:表示分配结果,是一个物理上概念,表示最终实现的结果分片策略:基于范围分片:根据特定的字段进行拆分,比如ID0-
分类: 其他 发布时间: 11-23 09:33 阅读次数: 0