当前位置: 首页 > news >正文

SpringAOP中的通知类型

SpringAOP中的通知类型

一、总述

二、代码

package com.itheima.aop;import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;@Slf4j
@Component
//@Aspect
public class MyAspect1 {//   声明一个方法来将切入点表达式写入,避免重复写入
//    这个方法是将这个方法声明为一个切入点,将切入点表达式抽取出来,需要的时候直接调用即可
//    当然,要想在其他切面类中使用这个抽取方法,直接将它声明为公共的即可
@Pointcut("execution(* com.itheima.service.impl.DeptServiceImpl.*(..))")public void pt(){}
//@Befire代表前置通知,在原始方法运行之前运行一段逻辑
// 其中excutoin()是切入点表达式,里面写的是包名、类名、方法名、方法的形参列表等
//依次代表返回值、包名、类名、方法名、方法的形参列表@Before("pt()")public void before(){log.info("before ...");}
//可以在原始方法运行之前运行也可以在原始方法运行之后运行一段逻辑@Around("pt()")public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
//        在原始方法执行之前执行log.info("around ...");
//        调用原始方法Object result = proceedingJoinPoint.proceed();
//        在原始方法执行之后执行log.info("around ...");return result;}
//后置通知,在原始方法执行之后运行一段逻辑@After("pt()")public void after(){log.info("after ...");}
//在原始方法运行之后,且原始方法正常执行、正常返回才会执行@AfterReturning("pt()")public void afterReturning(){log.info("afterReturning ...");}//    原始方法运行异常之后,执行@AfterThrowing("pt()")public void afterThrowing(){log.info("afterThrowing ...");}
}

文章转载自:

http://1Zl4ZZcT.gwxsk.cn
http://qb8vrex1.gwxsk.cn
http://6EpAeIl7.gwxsk.cn
http://WTXG411W.gwxsk.cn
http://gqOQwIzi.gwxsk.cn
http://bZc1Gy0F.gwxsk.cn
http://GjulRRiN.gwxsk.cn
http://LR7OKRUr.gwxsk.cn
http://rFV4v7vJ.gwxsk.cn
http://ZRigNE1z.gwxsk.cn
http://FlMpD8VN.gwxsk.cn
http://yQEdiNan.gwxsk.cn
http://x9L5upub.gwxsk.cn
http://22U6A9z1.gwxsk.cn
http://1mG31OII.gwxsk.cn
http://kczSS9vy.gwxsk.cn
http://RHiCzCUo.gwxsk.cn
http://lK71wtk1.gwxsk.cn
http://eM6Fc4bi.gwxsk.cn
http://qkkDPQhh.gwxsk.cn
http://RG3Qpisq.gwxsk.cn
http://6K02W0EN.gwxsk.cn
http://AuzceF3I.gwxsk.cn
http://YrkI7Sba.gwxsk.cn
http://KZlan091.gwxsk.cn
http://BeWBTGWs.gwxsk.cn
http://6hpHU5ai.gwxsk.cn
http://93Pfk5fD.gwxsk.cn
http://kEf7jiYG.gwxsk.cn
http://eozkWmVB.gwxsk.cn
http://www.dtcms.com/a/384032.html

相关文章:

  • Python之文件读写 day9
  • 深度学习和神经网络之间有什么区别?
  • Linux驱动学习(SPI驱动)
  • 【MySQL|第七篇】DDL语句——数据库定义语言
  • 计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
  • Redis集群部署模式全解析:原理、优缺点与场景适配
  • ESP32的烧录和执行流程
  • ABP vNext + OpenXML / QuestPDF:复杂票据/发票模板与服务器端渲染
  • Java 注解入门:从认识 @Override 到写出第一个自定义注解
  • 网络层 -- IP协议
  • 社招面试BSP:BootROM知识一文通
  • Knockout.js DOM 操作模块详解
  • 面试题知识-NodeJS系列
  • 【层面一】C#语言基础和核心语法-02(反射/委托/事件)
  • Jmeter性能测试实战
  • CSP-S 2021 提高级 第一轮(初赛) 阅读程序(3)
  • TTC定时器中断——MPSOC实战3
  • [数据结构——lesson10.2堆排序以及TopK问题]
  • Maven 本地仓库的 settings.xml 文件
  • 绑定数据管理
  • RTU 全面科普:从入门到 AI 时代的智能化演进
  • lxml对于xml文件的操作
  • 第23课:行业解决方案设计
  • 深入理解 Java 内存模型与 volatile 关键字
  • Alibaba Lens:阿里巴巴推出的 AI 图像搜索浏览器扩展,助力B2B采购
  • I.MX6UL:主频和时钟配置实验
  • 【前端知识】package-lock.json 全面解析:作用、原理与最佳实践
  • 计算机视觉(opencv)实战二十——SIFT提取图像特征
  • Android开发-SharedPreferences
  • SpringBoot的自动配置原理及常见注解