springboot怎么实现对注解的切面
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容介绍了"springboot怎么实现对注解的切面"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
武汉学网络技术
杭州软件开发哪里好
四大网络安全审计部门名称
网络安全风险公众
江苏软件开发解决方案定制
超融合服务器交换机选择
汉阳软件开发大专
定制网络技术直销价格
ibeacon网络技术
宁河区应用软件开发服务咨询报价
cisco 服务器认证
济南交易软件开发服务
软件开发现代服务
宝塔备份的数据库恢复出错
固件开发与软件开发
桓台物料开单软件开发公司
中国数据库技术大会在哪
高清人脸比对分析服务器
sci网络数据库原始数据获取
dhcp 备份服务器
软件开发学习顺序
工业软件开发需要什么知识
下关区软件开发技术项目实训中心
旧amd电脑做存储服务器
支撑网络安全态势感知
金蝶数据库怎么查找销售发票
收件服务器应该怎么填写手机
计算机网络技术ATM是什么
企业网络技术咨询是真的吗
杭州软件开发销售人员