springboot怎么实现对注解的切面
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本篇内容介绍了"springboot怎么实现对注解的切面"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年11月14日springboot怎么实现对注解的切面
本篇内容介绍了"springboot怎么实现对注解的切面"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
对注解实现切面案例:
(1)定义一个注解
@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String getValues() default "test annotation";}@Target(ElementType.METHOD)
表示该注解作用在方法上(type表示类上,field表示成员变量上)
@Retention(RetentionPolicy.RUNTIME)
表示该注解的作用范围,由于需要在运行时能够识别到该注解,所以是RUNTIME(SOURCE表示源码层面上,即编译成.class时看不见该注解,而CLASS可以,但是在运行时看不到)
(2)编写对注解的切面
(只是记录的执行时间和打印方法,可以实现其他逻辑)
@Aspect@Component@Slf4jpublic class MyAspect { // value也可以写成value = "(execution(* com.sj..*(..))) && @annotation(zkDistributeLock)" @Around(value = "@annotation(myAnnotation)", argNames = "proceedingJoinPoint, myAnnotation") public Object processTest(ProceedingJoinPoint proceedingJoinPoint, MyAnnotation myAnnotation) throws Throwable { long beginTime = System.currentTimeMillis(); // 获取方法参数 Object[] args = proceedingJoinPoint.getArgs(); // 执行方法 Object res = proceedingJoinPoint.proceed(args); long time = System.currentTimeMillis() - beginTime; MethodSignature signature = (MethodSignature) proceedingJoinPoint.getSignature(); String className = proceedingJoinPoint.getTarget().getClass().getName(); String methodName = signature.getName(); log.info("注解上的值:{}", myAnnotation.getValues()); log.info("执行时间:{}", time); log.info("执行类和方法:{} {}", className, methodName); return res; }}(3)测试
@GetMapping("/go")@MyAnnotation(getValues = "success")public String test1() { return "hello world";}执行结果:
注解上的值:success
执行时间:8
执行类和方法:com.***.TestController test1
"springboot怎么实现对注解的切面"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
注解
方法
切面
时间
作用
内容
更多
案例
知识
运行
实用
学有所成
接下来
参数
变量
只是
困境
实际
层面
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳软件开发网店
3月15日是网络安全日吗
北京海联海通网络技术
2020网络技术的发展趋势
软件开发BSE成长经验
西藏网络安全研讨会
relay非数据管理服务器
信息系统的服务器配置
数据库用户管理实验总结和心得
当今网络技术对生活的影响
数据库应用实例
软件开发 需要买i7么
网络安全防护实践教学特点
预测网络安全的专家
读软件开发心得读书笔记
软件开发类购销合同
服务器如何增加模组手机版
合肥直播平台软件开发
Windows网络安全测试
工信部网络安全管理局张正
儿童网络安全教育课件
神通数据库配置工具打不开
省级机关网络安全责任制
miui清除qq数据库
传奇3装备在哪个数据库
关于数据库中的三个世界
网络安全宣传知识专题讲座
高级软件开发工程师生涯路线
泰山k22r-02服务器
质量部需要哪些数据库