SpringBoot整合AOP使用

        1.在pom.xml中引入相对的jar包

<dependencies> 
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
    </dependency>
</dependencies>

2.在自己的包结构下,重新建立一个aop包的,此包用来作为本次项目的面向切面编程

3.在项目里面建立一个java类,将此类标记为切面类,需要开启两个注解 @Component,此注解的意思是将当前类的对象创建使用维护交由Spring容器管理维护,@Aspect 将当前类标记为切面类,@Order() 优先级 值越低优先级越高

 

4.AOP 一共有五种通知,都相对应的注解进行标识,在方法上进行表示

(1) @Before注解表示作为前置通知

(2)@After 最终通知

(3)@AfterReturning  后置通知(返回通知)

(4)@AfterThrowing 异常通知

(5)@Around 环绕通知

不管进行什么的切面通知,都要配置切入点,标记这个通知或者说被增强类,在那个包下或者在某个方法下

在此演示环绕通知,检测service包下所有的方法,记录他们的耗时时间,在控制台上进行打印

@Component // 将当前类的对象创建使用维护交由Spring容器管理维护
@Aspect // 将当前类标记为切面类
public class TimerAspect {

    @Around("execution(* com.zy.store.service.impl.*.*(..))")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {

        // 先记录当前时间
        long start = System.currentTimeMillis();
        Object result = pjp.proceed(); // 调用目标方法:login
        // 插入数据库
        // 后记录当前时间
        long end = System.currentTimeMillis();

        System.out.println("耗时:" + (end - start));
        //将当前的环绕通知映射到某个切面上(指定连接的点)
        return result;
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值