Spring 学习笔记8---Spring AOP
前言 容器和AOP是Spring的两大核心。本文将来学习Spring AOP。 AOP是什么? AOP在计算机科学领域还是相对年轻的概念,由Xerox PARC公司发明。Gregor Kiczales 在1997年领导一队研究人员首次介绍了AOP。当时他们关心的问题是如何在大型面向对象的代码库中重复使用那些必要且代价高的样板,那些样板的通用例子具有日志,缓存和事务功能。在最终的研究报告中,Kiczales和他的团队描述了OOP技术不能捕获和解决的问题,他们发现 横切关注点 最终分散在整个代码中,这种交错的代码会变得越来越难开发和维护。他们分析了所有技术原因,包括为何这种纠缠模式会出现,为什么避免起来这么困难,甚至涉及了设计模式的正确使用。该报告描述了一种解决方案作为OOP的补充,即使用“切面aspects”封装横切关注点以及允许重复使用。最终实现了 AspectJ ,就是今天Java开发者仍然使用的一流AOP工具。 也就是说,AOP可不是Spring发明的,Spring只是对AOP做了支持而已。既然如此,AOP里面的几个概念就是通用的了。 《Spring in Action》这本书给出了明确的解释: 在软件开发中,散布于应用中多处的功能被称为横切关注点(cross-cutting concern)。通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的。比如:日志、声明式事物