Spring之AOP

简介:

一、什么是AOP

    1.AOP的基本概念

    AOP将应用系统分为两个部分:核心业务逻辑以及横向的通用逻辑。

    也就是所谓的方面。

    例如,所有大中型应用都要涉及到的持久化的管理、事务管理、安全管理、日志管理以及调试管理等等。

    在Spring当中提供了面向切面编程的丰富的支持。允许通过分离应用的业务逻辑与系统级的服务进行内置性的开发。

    应用对象指实现他们应该做的,也就是完成业务逻辑,仅此而已。它们并不负责甚至意识到其它的系统级别的关注点。例如日志和事务支持等等。

    2.AOP与OOP的关系

    在软件行业当中,AOP是对OOP的面向对象编程的一种有益的补充,同时AOP也是OOP的延续,是软件开发中的一个热点,也是spring框架当中一个非常重要的内容。OOP是从静态角度考虑程序结构,即OOP对业务处理过程中的实体以及属性和行为进行了抽象的封装,以获得更加清晰、高效果的逻辑划分,研究的是一种静态的领域。而AOP是从动态角度考虑程序运行过程,即针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或者阶段,研究的是一种动态的领域。

    3.AOP的主要功能

    它主要是用于系统级别的功能,例如日志记录、性能统计、安全控制、事务处理、异常处理等等这些主要功能。

    4.AOP的主要意图

    它主要是将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来。通过对这些行为的分离,我们希望可以将他们独立到非指导性业务逻辑方法当中,进而改变这一行为的时候不影响业务逻辑代码的处理。也就是说AOP把一些常用的服务进行模块化,并且用声明的方式将这些组件使用到其它的业务组件当中去。这样做的结果就是每一个业务组件只需要关心自己的业务逻辑,而不用去了解一些常用的服务组件,这样就保证了更高的内聚性。


二、AOP的存在价值

    AOP专门用于处理系统中分布于各个模块中的交叉关注点的问题,在Java EE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等,AOP已经成为一种非常常用的解决方案。


三、AOP的原理剖析

    AOP代理其实是由AOP框架动态生成的一个对象,该对象可作为目标对象使用。

     定义普通业务组件

    定义切入点

    定义增强处理

    代理对象的方法=增强处理+被代理对象的方法


四、AOP的关键概念

    切面 - Aspect

    连接点 - Join Point

    通知 - Advice

    切入点 - Point Cut

    引入 - Introduction

    目标对象 - Target Object

    AOP代理 - AOP Proxy

    织入 - Weaving

    

五、AOP的通俗理解

    一个组件A,不关心其他常用的组件B,但是这个组件A使用组件B的时候,不是组件A自身去调用,而是通过配置等其他方式,比如Spring中可以通过xml配置文件。这样就使得A压根就不需要知道服务组件B是怎样的,爱存在不存在,爱怎么存在都与A无关。A只关心自己的业务逻辑,具体A使用B的时候,配置文件去做,与具体的A组件无关。


本文转自yeleven 51CTO博客,原文链接:http://blog.51cto.com/11317783/1832539



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
监控 Java 开发者
Spring AOP动态代理
Spring AOP动态代理
40 1
|
1月前
|
Java Spring 容器
Spring的AOP失效场景详解
Spring的AOP失效场景详解
88 0
|
2月前
|
XML Java 编译器
Spring AOP初步理解及使用
Spring AOP初步理解及使用
49 0
|
2月前
|
Java Spring
[Spring]aop的配置与使用
[Spring]aop的配置与使用
40 0
[Spring]aop的配置与使用
|
23天前
|
设计模式 Java Maven
Spring Aop 底层责任链思路实现-springaopdi-ceng-ze-ren-lian-si-lu-shi-xian
Spring Aop 底层责任链思路实现-springaopdi-ceng-ze-ren-lian-si-lu-shi-xian
31 1
|
2月前
|
XML Java 数据格式
5个点轻松搞定Spring AOP底层实现原理
AOP 也是 Spring 中一个较为重要的内容,相对于传统的 OOP 模式,AOP 有很多让人难以理解的地方,本篇文章将向大家介绍 AOP 的实现方法及其底层实现,内容包括:
44 1
|
16天前
|
XML Java Maven
Spring之Aop的注解使用
Spring之Aop的注解使用
|
22天前
|
Java Spring
Spring 如何实现 AOP
Spring 如何实现 AOP
17 0
|
30天前
|
Java 编译器 程序员
Spring AOP 和 AspectJ 的比较
Spring AOP 和 AspectJ 的比较
35 0
|
1月前
|
Java Spring
【spring(三)】AOP总结
【spring(三)】AOP总结