springboot怎么实现对注解的切面
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,本篇内容介绍了"springboot怎么实现对注解的切面"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2024年12月13日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安全错误
数据库的锁怎样保障安全
延边导航软件开发
大连软件开发工作怎么样
网站迁移数据库设置
郑州正规软件开发有用吗
如何清除网页所有数据库
企业要建立自己的服务器吗
软件开发和硬件会计处理
web服务器支持线数
东软集团的软件开发怎么样
图书馆自建数据库
黑龙江智慧养老软件开发专业制作
政府科技扶持资金互联网医疗
网络安全法属于专门法规吗
什么是数据库的安全性与完整性
直播公司服务器需要多大的宽带
重庆软件开发培训机构排名
连接数据库下所有表
软件开发操作系统库
财政网络安全工作责任制
数据库在线链接
家长网络安全承诺书
软件开发类的网店名字怎么起
网络安全隐患观后感
厦门下单软件开发设计
万方数据库著作权使用费包含
政府科技扶持资金互联网医疗
大话西游那个服务器大力多
宝塔绑定服务器是空的
网络安全校园600字作文
安卓app数据库