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

spring boot使用自定义注解做AOP

  1. 创建一个自定注解,接收一个传值type
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface EchoStatus {String type();
}
  1. 创建一个切面类,绑定一些切面方法,比如before,after…
@Aspect
@Component
@Slf4j
public class EchoStatusAspect {@Pointcut("@annotation(com.gbs.mgt.annotation.EchoStatus)")public void customPointcut() {}@Before("customPointcut()")public void beforeAdvice(JoinPoint joinPoint) {Object[] args = joinPoint.getArgs();System.out.println("Before method execution: " + joinPoint.getSignature().getName()+"入参:"+ Arrays.asList(args));}@After(value = "customPointcut()")public void afterAdvice(JoinPoint joinPoint) {System.out.println("After method execution: " + joinPoint.getSignature().getName());}@AfterReturning(value = "customPointcut()", returning = "result")public void afterReturningAdvice(JoinPoint joinPoint, Object result) {System.out.println("After method execution: " + joinPoint.getSignature().getName()+"结果:"+result);}
}
@EchoStatus (type = "无所谓")
public String index(){return "hello word";
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 短剧系统开发步骤需求设计方案逻辑
  • mosquitto工具使用
  • 如何提高逻辑性?(小妙招)
  • 【Java面试】十六、并发篇:线程基础
  • 企业微信hook接口协议,ipad协议http,取消扫码返回
  • EXCEL从图片链接获取图片
  • 分布式光纤测温DTS与红外热成像系统的主要区别是什么?
  • C++多线程并发
  • kettle_Hbase
  • 通过ssr-echarts,服务端生成echarts图
  • 渗透测试之内核安全系列课程:Rootkit技术初探(五)
  • 用函数指针求a和b中的大者
  • 中国蚁剑 安装教程 2024年5月
  • flutter文件分类模板之modules
  • NLP中的Tokenizer分词器的概念与实现
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • C++11: atomic 头文件
  • Cumulo 的 ClojureScript 模块已经成型
  • E-HPC支持多队列管理和自动伸缩
  • PAT A1120
  • Promise初体验
  • Python_OOP
  • Vue 动态创建 component
  • 警报:线上事故之CountDownLatch的威力
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 微信小程序实战练习(仿五洲到家微信版)
  • 我这样减少了26.5M Java内存!
  • # SpringBoot 如何让指定的Bean先加载
  • (11)MATLAB PCA+SVM 人脸识别
  • (C)一些题4
  • (done) 两个矩阵 “相似” 是什么意思?
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (pytorch进阶之路)扩散概率模型
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (三)SvelteKit教程:layout 文件
  • (实战篇)如何缓存数据
  • (一) springboot详细介绍
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)scrum常见工具列表
  • (转)项目管理杂谈-我所期望的新人
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET gRPC 和RESTful简单对比
  • .NET 常见的偏门问题
  • .Net 代码性能 - (1)
  • .NET 给NuGet包添加Readme
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET实现之(自动更新)
  • .NET业务框架的构建