【Spring 】【AOP】注解开发及excution函数的使用

版权声明: https://blog.csdn.net/qq_35315154/article/details/84584771

一、excution函数的使用

语法:[访问修饰符]  返回值  包名.类名.方法名 (参数)

举例1:public * com.test.Dao.userDal.save(..)//*任意返回值, .. 任意参数

二、注解开发

步骤1:引入相关JAR包

步骤2:打开XML中的注释,

步骤3:配置切面类的bean,要增强类的bean,注解切面类

//切面类

@Aspect
public class A{
//before是前置通知
@Before(value="execution(* 包.类名.方法名(..))")//要增强的方法
public void fun(){}//增强方法
//后置通知
	@AfterReturning(value="execution(*  com.testSpring.AOP.Dao.UserDao.delete(..))" ,returning="result")
	public static void getMD5Del(Object result) {
        
        System.out.println("被增强方法的返回值是" + result);
	}
//环绕通知
	@Around(value="execution(*  com.testSpring.AOP.Dao.UserDao.update(..))",argNames="joinpoint")
	public static void getMD5Up(ProceedingJoinPoint joinpoint) throws Throwable {
		System.out.println("around before");
		Object obj = joinpoint.proceed();
        System.out.println("return value is" + (String)obj);
        System.out.println("around after");
		
	}
//异常通知
	@AfterThrowing(value="execution(*  com.testSpring.AOP.Dao.UserDao.query(..))",throwing="ex")
	public static void throwEx(Throwable ex) {
		System.out.println("ex :" + ex.getMessage() );
	}
最终通知
	@After(value="execution(*  com.testSpring.AOP.Dao.UserDao.query(..))")
	public static void finallyRun() {
		System.out.println("最终通知");
	}

猜你喜欢

转载自blog.csdn.net/qq_35315154/article/details/84584771