AOP
文章平均质量分 95
dm_vincent
这个作者很懒,什么都没留下…
展开
-
[AOP] 1. AOP的由来以及快速上手
AOP从何而来技术的演化从来都不是随机现象。往往都是为了应对某种特定的问题,而形成的一系列切实可行解决方案或者优雅的最佳实践,然后把它们汇聚在一起,就形成了一个工具,一个库或者是一个框架。为应对Cross-cutting问题而生要了解AOP(Aspect Oriented Programming,面向切面编程)从何而来,首先来看看下面这段代码:public void doBusinessLogic(原创 2017-02-25 14:44:22 · 3242 阅读 · 0 评论 -
[AOP] 2. AOP的两种实现-Spring AOP以及AspectJ
在接触Spring以及种类繁多的Java框架时,很多开发人员(至少包括我)都会觉得注解是个很奇妙的存在,为什么加上了@Transactional之后,方法会在一个事务的上下文中被执行呢?为什么加上了@Cacheable之后,方法的返回值会被记录到缓存中,从而让下次的重复调用能够直接利用缓存的结果呢?随着对AOP的逐渐应用和了解,才明白注解只是一个表象,在幕后Spring AOP/AspectJ做了大原创 2017-02-26 22:29:18 · 22175 阅读 · 9 评论 -
[AOP] 4. Spring AOP中提供的种种Aspects - 异步执行
上一篇文章介绍了Spring AOP中提供的种种与Tracing相关的Aspects,还剩两个Aspects没有讨论:AsyncExecutionInterceptorConcurrencyThrottleInterceptor本文继续探讨和异步与并发相关一个Aspect,也是使用的比较普遍的一个:AsyncExecutionInterceptor在下篇文章中会继续讨论Concurrenc原创 2017-03-19 15:52:39 · 8004 阅读 · 0 评论 -
[AOP] 3. Spring AOP中提供的种种Aspects - Tracing相关
在第一篇文章中,介绍了AOP的一些背景知识以及如何快速上手,然后在第二篇中详细分析了AOP的两种实现 - Spring AOP以及AspectJ。本文偏向于实践,继续介绍Spring AOP中提供的种种Legacy Aspects。虽然这些Aspects的历史已经比较久远了(好多都是在Spring 1.x时代就存在了),但是并不妨碍我们理解它们背后蕴含的思想以及见识AOP能够解决的问题域。了解这些现原创 2017-03-11 17:32:48 · 8284 阅读 · 1 评论 -
[AOP] 5. Spring AOP中提供的种种Aspects - 并发控制
本文继续讨论ConcurrencyThrottleInterceptor(基于Spring 4.3.7)。以及上一篇文章中遗留的一个关于SimpleAsyncTaskExecutor类中属性concurrencyLimit的问题。这些都和并发控制相关。但是这里需要事先说明的一点是,这些类和实现的年代都比较久远了,比如ConcurrencyThrottleInterceptor是在2004年的Spri原创 2017-04-05 11:30:22 · 4899 阅读 · 0 评论 -
[AOP] 6. 一些自定义的Aspect - 方法的重试(Retry)
前面的一系列文章介绍了AOP的方方面面:AOP的由来以及快速上手AOP的两种实现-Spring AOP以及AspectJSpring AOP中提供的种种Aspects - Tracing相关Spring AOP中提供的种种Aspects - 异步执行Spring AOP中提供的种种Aspects - 并发控制从本篇文章开始,会介绍一些基于AOP原理的自定义Aspect实现,用来解决在开发原创 2017-06-03 12:01:10 · 3028 阅读 · 2 评论 -
[AOP] 7. 一些自定义的Aspect - Circuit Breaker
Circuit Breaker(断路器)模式关于断路器模式是在微服务架构/远程调用环境下经常被使用到的一个模式。它的作用一言以蔽之就是提高系统的可用性,在出现的问题通过服务降级的手段来保证系统的整体可用,而不至于因为部分问题导致整个系统不可用。用下面这张图可以很好的说明它能够解决的问题: 图片引用自参考资料1。其中从client和supplier可以分别理解成调用者和远程方法。在没有Circuit原创 2017-07-30 13:40:12 · 1368 阅读 · 0 评论