3.Spring AOP的基本操作

1.概念
 AOP:面向切面编程(拓展一个功能不修改源代码实现)
2.AOP的底层原理
  1.发展的过程


  2.Aop原理


3.AOP相关操作
 1. Joinpoint(连接点):指哪些被拦截到的点;在Spring中这些点指的是方法,因为Spring只支持方法类型的连接点;
 2.Pointcut(切入点):指我们要对那些Joinpoint进行拦截的定义;

 3.Advice(通知/增强):指的是拦截到Joinpoint之后所做的事情就是通知;通知分为前置通知、后置通知、异常通知、最终通知、环 绕通知(切面要完成的功能);
 4.Aspect(切面):是切入点和通知(引介)的结合;
 5.Introduction(引介):引介是一种特殊的通知在不修改类的前提下,Introduction可以在类运行期间为类动态的添加一些方法或属 性;
 6.Target(目标对象):代理的目标对象(要增强的类)
 7.Weaving(织入):把增强应用到Target的过程;
 8.Proxy(代理):一个类被AOP织入后,就产生了一个结果代理类;

package com.study.cn.common;

public class User {


public void add(){}
public void update(){}
public void delete(){}
public void selectAll(){}
}


  连接点 :类里面那些方法可以被增强,这些方法被称为连接点;
  切入点:在类里面可以有许多方法被增强,比如实际的操作中我们只增强了add() 和update(),实际增强的方法就叫切入点;
  通知/增强:增强的逻辑称为增强;比如拓展日志功能,这个日志功能被称为增强;  
  前置通知:在方法之前执行;
  后置通知:在方法之后执行;
  异常通知: 在方法出现异常时执行;
  最终通知: 在后置之后执行;
  环绕通知: 在方法之前和之后执行;
  切面:   把增强应用到具体的方法上面的过程称为切面(把增强应用到切入点的过程)
  
4.spring的基于aop操作(基于aspectj的xml方式)
1.Aspectj简介  

  1.Aspectj是一个面向切面的框架,它拓展了Java语言,Aspectj定义了AOP的基本语法所以有一个专门的编译器用来生成遵守Java字节编码的Class文件;
2.Aspectj是一个基于java的AOP框架;
3.Spring2.0之后新增了对Aspectj切点的表达式的支持;
4.@Aspectj是Aspectj1.5新增的功能,通过JDK5注解技术,允许直接在Bean类中定义切面;
5.新版的Spring框架建议使用Apectj方式开发Aop;
6.使用Aspectj需要导入Spring AOP和Aspectj相关jar包;


2.Spring的AOP的操作
  1.在Spring里面进行AOP的操作,使用aspectj实现;
  2.Aspectj不是spring的部分,和spring一起使用进行AOP的操作;
  3.Spring2.0新增了对Aspectj的支持;
3.使用aspectj实现AOP的两种方式
1.基于aspectj的xml方式
2.基于aspectj的注解方式
4.AOP开发的准备
1.除了导入基本的jar外,还需要导入aop相关的 jar

2.引入aop的约束
4.使用表达式配置切入点;

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

2.常用表达式

excution(访问修饰符 返回类型 方法名 参数)

4.基于Aspectj的XML方式


 

5.Aspectj的其他操作


 

6.基于aspectj的注解方式
1.导入jar,创建对象;

2.在spring核心配置文件中,开启aop操作

3.在增强类上面用注解完成aop操作


 

6.@Aspectj提供了不同的通知类型
1.@Before 前置通知,相当于BeforeAdvice;
2.@AfterReturning后置通知,相当于AfterReturningAdvice;
3.@Around 环绕通知,相当于MethodInterceptor;
4.@AfterThrowing 抛出通知,相当于ThrowAdvice
5.@After最终通知,不管是否异常,该通知都会执行;


 
 
  

猜你喜欢

转载自blog.csdn.net/qq_29393273/article/details/84633686