摘要: [TOC] 1. 引言 之前开了一个解读IOC容器启动源码的坑 "Spring IOC容器启动流程源码解析(一)——容器概念详解及源码初探" ,不过由于最近比较忙,这个坑挖了却一直没时间填。最近在看分布式事务相关的开源项目,碰到了一些Spring AOP相关的问题,比如Spring AOP中的增强逻 阅读全文
posted @ 2018-12-24 00:18 takumiCX 阅读(2204) 评论(1) 推荐(1) 编辑
摘要: [TOC] 1. 关于LoadTimeWeaving 1.1 LTW与不同的切面织入时机 AOP——面向切面编程,通过为目标类织入切面的方式,实现对目标类功能的增强。按切面被织如到目标类中的时间划分,主要有以下几种: 1.运行期织入 这是最常见的,比如在运行期通过为目标类生成动态代理的方式实现AOP 阅读全文
posted @ 2018-12-20 17:14 takumiCX 阅读(8901) 评论(4) 推荐(3) 编辑
摘要: [TOC] 引言 对于分布式系统而言,不同的服务分布在不同的节点上,一个服务要完成自己的功能经常需要调用其他服务的接口,比如典型的微服务架构。通常这种服务调用方式有两种,一种是发送HTTP请求的方式,另一种则是RPC的方式,RPC是Remote Procedure Call(远程过程调用)的简称,可 阅读全文
posted @ 2018-12-03 17:28 takumiCX 阅读(8123) 评论(2) 推荐(0) 编辑
摘要: [TOC] 前言 什么是分布式系统?关于这点其实并没有明确且统一的定义。在我看来,只要一个系统满足以下几点就可以称之为分布式系统 系统由物理上不同分布的多个机器节点组成 系统的多个节点通过网络进行通信,协调彼此之间的工作。 系统作为整体统一对外提供服务,其分布式细节对客户端透明。 要想更好的理解分布 阅读全文
posted @ 2018-11-26 23:34 takumiCX 阅读(9851) 评论(2) 推荐(7) 编辑
摘要: [TOC] 前言 事务是数据库系统中的重要概念,了解这一概念是以正确的方式开发和数据库交互的应用程序的前提。但是很多开发者对于事务的认识相对片面和肤浅,仅仅把它等同于ACID,不了解数据库系统引入事务的真正动机,ACID对于事务意味着什么以及最重要的:数据库系统是如何保证事务的ACID特性的? 因为 阅读全文
posted @ 2018-11-22 16:25 takumiCX 阅读(89676) 评论(14) 推荐(30) 编辑
摘要: [TOC] 1. 什么是事件监听机制 在讲解事件监听机制前,我们先回顾下设计模式中的观察者模式,因为事件监听机制可以说是在典型观察者模式基础上的进一步抽象和改进。我们可以在JDK或者各种开源框架比如Spring中看到它的身影,从这个意义上说,事件监听机制也可以看做一种对传统观察者模式的具体实现,不同 阅读全文
posted @ 2018-11-17 12:22 takumiCX 阅读(13744) 评论(6) 推荐(10) 编辑
摘要: 1. 观察者模式简介 在软件开发中,观察者模式是使用频率最高的设计模式之一,如果你做过web开发,对它应该更不会陌生,因为典型的MVC架构就是对观察者模式的一种延伸。在软件开发中经常会碰到这种困境:系统由若干个相互协作的类构成,类之间常有一对多的依赖关系,当被依赖对象的状态变化时,其他所有依赖对象都 阅读全文
posted @ 2018-10-30 11:51 takumiCX 阅读(1720) 评论(0) 推荐(0) 编辑
摘要: [TOC] 1. 关于策略模式 策略模式和java语言的多态特性有些像。java的多态特性允许我们面向接口编程,不用关心接口的具体实现。接口所指向的实现类,以及通过接口调用的方法的具体行为可以到运行时才绑定。这么做最大的好处是在尽可能实现代码复用的前提下更好地应对具体实现类的变化。比如我想增加一种接 阅读全文
posted @ 2018-10-16 11:14 takumiCX 阅读(7227) 评论(0) 推荐(1) 编辑
摘要: [TOC] 1. 前言 1.1 IOC容器到底是什么 IOC和AOP是Spring框架的核心功能,而IOC又是AOP实现的基础,因而可以说IOC是整个Spring框架的基石。那么什么是IOC?IOC即控制反转,通俗的说就是让Spring框架来帮助我们完成对象的依赖管理和生命周期控制等等工作。从面向对 阅读全文
posted @ 2018-10-09 15:28 takumiCX 阅读(5312) 评论(2) 推荐(0) 编辑
摘要: [TOC] 1. 前言 在实际开发中,碰上CPU密集且执行时间非常耗时的任务,通常我们会选择将该任务进行分割,以多线程方式同时执行若干个子任务,等这些子任务都执行完后再将所得的结果进行合并。这正是著名的map reduce思想,不过map reduce通常被用在分布式计算的语境下,这里举这个例子只是 阅读全文
posted @ 2018-09-25 14:19 takumiCX 阅读(2000) 评论(4) 推荐(4) 编辑