Tyshawn的博客

你眼中的世界就是你自己的样子。

ThreadLocal因线程复用导致失效

ThreadLocal 提供一个线程本地变量, 顾名思义, 这个变量值与线程相关, 不同线程之间互不影响. 它是如何做到这点的呢? 我们来看下源码. public class ThreadLocal<T> { protected T initialValue()...

2019-05-13 11:16:14

阅读数 21

评论数 0

使用Spring配置多数据源实现读写分离

随着业务不断发展, 数据量变得越来越大, 数据库的压力也与日俱增, 这时我们会考虑SQL优化, 分表分库, 读写分离这些策略来提高数据库的性能. 本篇博客这里只介绍读写分离策略, 什么是读写分离策略呢? 比如我们把数据库分为一个Master库, n个Slave库, Master库用来处理写操作和...

2019-05-10 17:19:43

阅读数 23

评论数 0

手写Spring框架之AOP

简介 手写Spring框架第一篇博客(必读): 手写Spring框架 前面两篇博客已经实现了Bean容器, IOC功能和MVC功能, 本篇博客来实现AOP功能和事务管理. 在看下面的内容之前, 一定要先回顾下Spring AOP和动态代理. Spring AOP 动态代理 handwritten-...

2019-01-25 15:35:30

阅读数 402

评论数 0

手写Spring框架之MVC

简介 手写Spring框架第一篇博客(必读): 手写Spring框架 上一篇博客实现了Bean容器和IOC功能, 本篇博客来实现简化版的 Spring MVC. 在看下面的内容之前, 我们首先来回顾下 Spring MVC的架构图: Spring MVC 最核心部分的就是前端控制器Dispatc...

2019-01-25 15:34:37

阅读数 292

评论数 0

手写Spring框架之IOC

简介 手写Spring框架第一篇博客(必读): 手写Spring框架 本篇博客主要实现两个功能: Bean容器 和 IOC. Bean容器 Bean容器也就是Spring容器, 在学习完Spring之后, 如果要我们用一句话来形容Spring, 我们经常会说: Spring是一个容器, 管理着应用...

2019-01-25 15:33:48

阅读数 258

评论数 0

手写Spring框架

在学习完Spring框架之后, 我们知道了 Spring容器, IOC, AOP, 事务管理, SpringMVC 这些Spring的核心内容, 也知道了它们底层实现的基本原理, 比如Spring容器就是个Map映射, IOC底层就是反射机制, AOP底层是动态代理, SpringMVC不就是对S...

2019-01-25 15:30:05

阅读数 307

评论数 0

绝对路径与相对路径

访问路径与资源名称 通常的URL资源访问路径由两部分构成:访问路径与资源名称. 资源名称指的是要访问资源的直接名称, 如show.jsp, 或与要访问资源存在映射关系的间接名称, 如show.do. 而访问路径, 则是通过该路径可以定位到指定的资源, 即在URL资源访问路径中除了资源名称以外的其他...

2019-01-14 23:00:22

阅读数 179

评论数 0

Spring AOP原理之动态代理

什么是代理? 指为一个目标对象提供一个代理对象, 并由代理对象控制对目标对象的引用. 使用代理对象, 是为了在不修改目标对象的基础上, 增强目标对象的业务逻辑. 静态代理 静态代理的特点是, 为每一个业务增强都提供一个代理类, 由代理类来创建代理对象. 下面我们通过静态代理来实现对转账业务进行身...

2018-12-29 10:55:22

阅读数 269

评论数 0

Java注解

注解的语法 通过 @interface 声明一个注解 public @interface RequestMapping { } 注解的属性 public @interface RequestMapping { String value() default "&q...

2018-12-21 14:21:51

阅读数 93

评论数 0

HTTP基础

HTTP, TCP, IP 三者之间的关系 在OSI网络模型中, HTTP是应用层的协议, TCP是传输层的协议, IP是网络层的协议. 一个完整的HTTP请求过程 用户输入URL DNS域名解析 TCP三次握手 HTTP请求/响应 TCP四次挥手 客户端并不是直接与目标服务器创建连接, 而...

2018-12-11 15:03:30

阅读数 103

评论数 0

InnoDB的四种事务隔离级别是如何实现的?

事务的介绍看这篇博客: MySQL架构基础 并发控制的介绍看这篇博客: InnoDB并发控制 本篇博客介绍InnoDB的四种事务隔离级别是如何实现的, 需要事先阅读上面的两篇博客. REPEATABLE READ InnoDB并发控制 这篇博客最后一部分对REPEATABLE READ隔离级别是如...

2018-10-15 16:52:19

阅读数 333

评论数 0

InnoDB并发控制

并发控制 并发的事务对同一行记录进行读写操作, 如果不采取措施, 可能会导致数据不一致, 所以必须进行并发控制(Concurrency Control). InnoDB实现并发控制的方法是: 锁(Locking)和多版本并发控制(Multiversion Concurrency Control)....

2018-10-10 20:51:33

阅读数 155

评论数 0

MySQL架构基础

MySQL体系结构 总的来说, MySQL可以看成是二层架构, 第一层是SQL层, 在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的, 包括权限判断SQL解析、执行计划优化、Query Cache的处理等等. 第二层是存储引擎层, 也就是底层数据存取操作的实现部分, 由多种存储引...

2018-10-09 15:58:03

阅读数 248

评论数 0

Mysql索引基础

###什么是索引? 索引是存储引擎用于快速找到记录的一种数据结构. 索引是在存储引擎层而不是服务器层实现的, 所以不同储存引擎的索引的工作方式是不一样的, 这里主要介绍应用最多的InnoDB存储引擎的B+Tree索引. 索引的基本语法 (1)创建索引 CREATE [UNIQUE] INDEX 索...

2018-09-27 16:35:21

阅读数 161

评论数 0

Curator基础

Curator简介 Curator框架提供了一套高级的API, 简化了ZooKeeper的操作. 它增加了很多使用ZooKeeper开发的特性, 可以处理ZooKeeper集群复杂的连接管理和重试机制. Maven依赖 <dependency>...

2018-09-13 17:13:59

阅读数 64

评论数 0

ZooKeeper基础

ZooKeeper概述 ZooKeeper 是一个管理分布式应用的分布式协调服务. ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性. ZooKeeper提供的常见服务如下 : 命名服务 - 按名称标识集群中的节点。 配置管理 - 加入节点的最近的和最新的...

2018-09-12 20:55:20

阅读数 104

评论数 0

Netty基础

Netty入门程序 Server端代码 public class Server { public static void main(String[] args) throws Exception { //1 第一个线程组 是用于接收Client端连接的 ...

2018-09-06 16:45:10

阅读数 77

评论数 0

SSH整合之注解式开发

SSH项目结构图 Maven依赖 <properties> <org.springframework.version>4.2.0.RELEASE</org.springfr...

2018-08-06 16:12:29

阅读数 167

评论数 0

SSH整合之配置式开发

SSH项目结构图 Maven依赖 <properties> <org.springframework.version>4.2.0.RELEASE</org.springfr...

2018-08-06 15:18:50

阅读数 106

评论数 0

SSM整合之注解式开发

SSM项目结构图 Maven依赖 <dependencies> <dependency> &a...

2018-08-04 16:07:08

阅读数 389

评论数 0

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