Spring框架通过注解实现的通知的方法

Posted lmff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架通过注解实现的通知的方法相关的知识,希望对你有一定的参考价值。

在通知类中:

package org_shitang_aop;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
//通过注解来实现通知
@Component("LogBeforAnnotation")//通过注解实现<bean>
@Aspect
public class LogBeforAnnotation {
    
    //任意方法
    @Before("execution(public void org_shitang_servier.StudentServideImp1.deleteStudentByNo(int)) or execution(public void org_shitang_servier.StudentServideImp1.addStudent(org_shitang_entity.student))")//属性:定义切点
    public void myBefor(){
        System.out.println("通过注解实现前置通知");
    }
    @AfterReturning("execution(public void org_shitang_servier.StudentServideImp1.deleteStudentByNo(int)) or execution(public void org_shitang_servier.StudentServideImp1.addStudent(org_shitang_entity.student))")
    public void myAfter(){
        System.out.println("通过注解实现后置通知");
    }
}

在bean中:

<!-- 开启注解 -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
    <!-- 注解需要扫描 -->
    <context:component-scan base-package="org_shitang_aop"></context:component-scan>

异常需要:@AfterThrowing 环绕需要:@Around 最终需要:@After

获取信息必须要用joinpoint,返回值要用returningValue

package org_shitang_aop;
import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.springframework.stereotype.Component;//通过注解来实现通知@Component("LogBeforAnnotation")//通过注解实现<bean>@Aspectpublic class LogBeforAnnotation {//任意方法@Before("execution(public void org_shitang_servier.StudentServideImp1.deleteStudentByNo(int)) or execution(public void org_shitang_servier.StudentServideImp1.addStudent(org_shitang_entity.student))")//属性:定义切点public void myBefor(){System.out.println("通过注解实现前置通知");}@AfterReturning("execution(public void org_shitang_servier.StudentServideImp1.deleteStudentByNo(int)) or execution(public void org_shitang_servier.StudentServideImp1.addStudent(org_shitang_entity.student))")public void myAfter(){System.out.println("通过注解实现后置通知");}}

 

以上是关于Spring框架通过注解实现的通知的方法的主要内容,如果未能解决你的问题,请参考以下文章

AspectJ注解

Spring AOPSpring AOP之如何通过注解的方式实现各种通知类型的AOP操作进阶篇

Spring框架学习笔记 --- [在spring中初步上手实现AOP,以及对事务的初步配置使用]

Spring的第四天AOP之注解版

Spring使用注解实现AOP

spring boot框架学习学前掌握之重要注解-通过java的配置方式进行配置spring