java学习-springaop AOP-execution格式说明

郑重声明: 本文首发于人工博客

1、参数说明

示例

execution(* com._94rg.method.ces..*.*(..))
标识符 含义
execution() 表达式的主体
第一个“*”符号 表示返回值的类型任意
com._94rg.method.ces AOP所切的服务的包名,即,需要进行横切的业务类
包名后面的“..” 表示当前包及子包
第二个“*” 表示类名,*即所有类
.*(..) 表示任何方法名,括号表示参数,两个点表示任何参数类型

2、springaop的应用

  • 方法耗时监控
  • 出参、入参打印
  • 全局异常拦截
  • mock三方jar中的调用

3、代码分享

@Order(0) @Aspect @Component @Slf4j public class EsAspect { @Value("${testingMode:false}") private boolean testingMode; @PuppeteerConfigChangeListener private void configChangeListener(ConfigChangeEvent changeEvent) { if (changeEvent.isChanged("testingMode")) { testingMode = Boolean.parseBoolean( changeEvent.getChange("testingMode").getNewValue()); log.info("当前的测试模式开关为:{}", testingMode); } } /** * 定义一个切入点 */ @Pointcut("execution(public * com._94rg.DocSearchApi.*(..))") private void doAspect() { } @Around("doAspect()") public Object methodMonitor(ProceedingJoinPoint pjp) throws Throwable { if (testingMode) { MethodSignature methodSignature = (MethodSignature) pjp.getSignature(); Class type = methodSignature.getReturnType(); if (type != Void.TYPE) { return type.newInstance(); } } else { return pjp.proceed(); } return null; } }

版权声明:本文为人工博客的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
本文链接:https://www.94rg.com/article/1734


__EOF__

本文作者Mars
本文链接https://www.cnblogs.com/chen-xing/p/12371634.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   辛勤的蜜蜂  阅读(371)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示