SpringMVC原理解析

前身今世 Spring MVC是一种基于 MVC设计模式,请求-响应模型的轻量级Web框架,是当前毋庸置疑的最流行的Web框架。相比于Struts/Webx等老一辈Web框架,Spring MVC最主要有以下3点优势: 易用性 :角色划分清晰,URL映射简洁明了,Spring Boot下零配置,学习成本低。 兼容性 :与Spring无缝融合,天然享受Spring的抽象容器,面向切面,热部署等特性。 扩展性 :基于"Open-Close"原则,处理器(Controller)、处理器映射(HandlerMapping)、视图解析器(ViewResolver)、视图(View) ...

JS绘制Charts图表

目前通过js绘制图表的工具有很多,下面是使用到较多的图表库。 svg 图表库 D3 C3 nvd3 highcharts html5 canvas 图表库 chartjs echarts G2,G6,F2 js在线调试工具 jsfiddle codepen

Idea JRebel破解

JRebel 插件安装 可以从jetbrains插件网址上离线下载安装, 链接, 也可以通过Plugins在线安装。 JRebel 反向代理激活 ReverseProxy 反向代理下载 https://github.com/ilanyu/ReverseProxy/releases/ 下载操作系统对应的最新的版本,然后执行。 Idea 配置激活 JRebel 配置激活的地址为 http://0.0.0.0:8888/88414687-3b91-4286-89ba-2dc813b107ce 后面字符串必须为GUID可以随机生成,因为授权地址增加了GUID检测。 ...

Docker基本命令

Docker基本服务命令 启动docker $ service docker start 重启docker $ service docker restart 停止docker $ service docker stop docker自启动 让它随服务器的启动而自动运行 $ update-rc.d docker defaults $ systemctl enable docker Docker基础命令 启动/停止/重启/杀掉容器 docker start/stop/restart/kill 实例操作如下: $ docker ...

MySQL死锁分析

背景 以前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的死锁场景。在多方调研以及和同事们的讨论下终于发现了这个死锁问题的成因,收获颇多。虽然是后端程序员,我们不需要像DBA一样深入地去分析与锁相关的源码,但是如果我们能够掌握基本的死锁排查方法,对我们的日常开发还是大有裨益的。 PS:本文不会介绍死锁的基本知识,mysql的加锁原理可以参考本文的参考资料提供的链接。 死锁起因 先介绍一下数据库和表情况,因为涉及到公司内部真是的数据,所以以下都做了模拟,不会影响具体的分析。 我 ...

MySQL虚读和幻读

1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败; All or Nothing. 一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变; 隔离性(Isolation): 多个事务之间就像是串行执行一样,不相互影响; 持久性(Durability): 事务提交后被持久化到永久存储. 2. 隔离性 其中 隔离性 分为了四种: READ UNCOMMITTED:可以读取未提交的数据,未提交的数据称为脏数据 ...

Hadoop系列-深刻理解HDFS工作机制

深入理解一个技术的工作机制是灵活运用和快速解决问题的根本方法,也是唯一途径。对于HDFS来说除了要明白它的应用场景和用法以及通用分布式架构之外更重要的是理解关键步骤的原理和实现细节。在看这篇博文之前需要对HDFS以及分布式系统有一些了解。请参考这篇博客。本篇博文首先对HDFS的重要特性和使用场景做一个简要说明,之后对HDFS的数据读写、元数据管理以及NameNode、SecondaryNamenode的工作机制进行深入分析。过程中也会对一些配置参数做一个说明。 一.HDFS的重要特性 HDFS是一个文件系统,用于存储和管理文件,通过统一的命名空间(类似于本地文件系统的目录树)。是分布式 ...