W-M'S blog

Thinking will not overcome fear but action will.

Spring学习系列之AOP实现机制分析

本文记录我对Spring AOP实现机制的使用和其实现原理的理解(基于Spring3.2版本)。 前言 面向切面编程思想(AOP)虽然与设计公共子模块有几分相似,但在传统的公共子模块调用中,除了直接硬调用之外并没有其他的手段,而AOP为处理这一类问题提供了一套完整的理论和灵活多样的实现方法。 AOP思想可以总结为基础(源程序)+切面(通知程序)+配置(编织); Spring ...

Spring学习系列之事件处理机制使用及实现

本文记录我对Spring 事件处理机制的使用和实现原理的理解(基于Spring3.2版本)。 前言 Spring事件处理机制符合标准的Observer设计模式,由ApplicationEventPublisher、ApplicationEvent、ApplicationListener三个组件组成;顾名思义,ApplicationEventPublisher用来发布事件,可继承A...

Spring学习系列之IOC容器依赖注入

本文记录我对Spring IOC容器依赖注入相关过程及注意事项的理解(基于Spring3.2版本)。 前言 上篇博客记录并简单分析了Spring IOC容器的初始过程,这个初始化的过程主要是在IOC容器中建立BeanDefinition数据映射,在此过程中并没有看到IOC容器对Bean依赖关系进行注入,本篇博客就来分析一下IOC容器是怎样对Bean的依赖关系进行注入的。 一般情...

Spring学习系列之IOC容器初始化

本文记录我对Spring IOC容器初始化相关过程及注意事项的理解(基于Spring3.2版本)。 前言 Spring IOC容器是IOC思想的其中一种实现,是用来管理对象的依赖关系的。Spring IOC容器中有两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能;另一个是ApplicationContext应用上下文,它是...

深入学习java并发编程之ThreadPoolExecutor

本文主要介绍了自己对于juc包中的ThreadPoolExecutor类中相关API的学习及实现原理的理解。 前言 使用线程池来管理线程有3个好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会...

深入学习java并发编程之Future及FutureTask

本文主要介绍了自己对于juc包中的Future及FutureTask类中相关API的学习及实现原理的理解。 前言 Future接口给我们提供了一些监测开启的任务的运行状态的方法,比如get()方法阻塞直到查询的任务执行完毕,cancel()方法取消一个任务的执行等等。FutureTask类是Future接口的一个实现,它同时还实现了Runnable接口,可以作为Thread中执行...

深入学习java并发编程之ConcurrentLinkedQueue-JDK1.8

本篇随笔主要记录了我阅读ConcurrentLinkedQueue(Jdk1.8)源码期间的对于ConcurrentLinkedQueue的一些实现上的个人目前的理解,膜拜Doug Lea大神的无锁并发安全队列的实现,肯定有很多地方理解的不到位,有待继续深入。 前言 通常使用CAS实现并发安全的方式是CAS操作更新一个volatile状态变量,比如下面的并发安全的堆栈实现: pu...

深入学习java并发编程之ConcurrentHashMap-JDK1.8

本篇随笔主要记录了我阅读ConcurrentHashMap(Jdk1.8)源码期间的对于ConcurrentHashMap的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出。 前言 相比于ConcurrentHashMap在JDK1.7中的实现,在JDK1.8中主要做了两方面的改进: 取消segments字段,直接采用transient volatile Node&...