AOP概述

1 aop:面向切面(方面)编程,扩展功能b不修改源代码实现

2 aop采取横向抽取机制,取代了传统的纵向继承体系重复性代码

AOP原理

 

 

 

AOP操作的相关术语

1 Joinpoint(连接点):类里面可以被增强的方法,这些方法称为连接点

2 Pointcut(切入点):在类里面有很多的方法被增强,比如实际操作中,只是增强了类里面add()方法和update()方法,实际增强的方法称为切入点

3 Advice(通知/增强):增强的逻辑,称为增强,比如扩展日志功能,这个日志功能称为增强

前置通知:在方法之前执行

后置通知:在方法之后执行

异常通知:方法出现异常

最终通知:在后置之后执行

环绕通知:在方法之前和方法之后执行

4 Aspect(切面):把我们的增强应用到具体方法上面的过程称为切面。即把增强用到切入点过程

5 Introduction(引介):引介是一种特殊的通知,在不修改类代码的前提下,Introduction可以在运行期为类动态添加一些方法或Field。

Target(目标对象):代理的目标对象(要增强的类)

Weaving(织入):把增强应用到目标的过程,即把Advice应用到Target的过程

Proxy(代理) :一个类被AOP织入增强后,就产生一个结果代理类

 Spring的aop操作

1 在spring里面进行aop操作,使用aspectj实现

(1) aspectj不是spring的一部分,和spring一起使用进行aop操作

(2)spring2.0以后新增了对aspectj支持

2 使用aspectj实现aop操作有两种方式

(1)基于aspectj的xml配置

(2)基于aspectj的注解方式

AOP操作准备

1 除了导入最基本的jar包外,还需要导入aop相关的jar包

2 创建spring核心配置文件,要导入aop的约束

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
      
</beans>

使用表达式配置切入点

1 切入点:实际增强的方法

2 常用表达式

execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

(1)execution(* xx.xx.xx.demo(..))

(2 ) execution(* xx.xx.xx.*(..))

(3) execution(* *.*(..))

(4)匹配所有save开头的方法execution(* save*(..))

Aspectj的AOP操作

 

版权声明:本文为czsy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/czsy/p/10387120.html