基于@AspectJ注解的AOP实现

介绍:

基于XML配置文件的AOP实现,需要在Spring配置文件中配置大量信息

如实现前置通知时需在xml中配置正则表达式拦截器,配置aop:aspect等

使用@AspectJ注解来简化AOP实现

 这里简单说明关于AspectJ注解功能

@Aspect:用于定义一个切面;

@Pointcut:定义一个切入点,一个返回值为viod且方法体为普通方法;

@Before:用于定义一个前置通知,相当于BeforeAdvice;

@AfterReturning用于定义一个后置通知;

@AfterThrowing:用于定义一个异常通知;

@Around:用于定义一个环绕通知;

@After:用于定义final通知,不管是否异常都会执行;

下面演示将基于XML配置的方法改为基于@AspectJ注解配置

1.为接口的实现类添加@Component注解,则会在Spring容器中自动创建ProductService的Bean实例

 

@Component("productService")

2.修改通知类,使用注解定义Bean、切面、切点和通知

package com.ssm.aop;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
//定义切面类,在此类中编写通知
@Aspect
@Component

 这里使用切入点的正则表达式execution,含义是对包路径下所有方法进行拦截,相当于拦截器;

public class AllLogAdvice {
    //定义切入点表达式
    @Pointcut("execution(* com.ssm.service.ProductService.*(..))")
    //使用一个返回值为void、方法体为空的方法来命名切入点
    private void allMethod(){
        
    }

 3.使用前置通知注解,这里切入点的名字为allMethod()

 配置xml配置文件,配置自动扫描的包,开启基于@AspectJ切面的注解处理器

 运行结果

使用@AspectJ注解代替了繁琐的xml配置方式

总结:

基于@AspectJ注解的AOP实现效果与基于XML配置文件的AOP实现效果相同,且可使Spring开发更为简洁,极大简化了Spring的配置。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值