首页 > 作文

springboot实现对注解的切面案例

更新时间:2023-04-04 13:04:59 阅读: 评论:0

对注解实现切面案例:

(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(zkdistributelo失恋qq个性签名ck)"  @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, met那天我回家晚了作文hodname);    return res;  }}

(3)测试

@getmapping("/go")@myannotation(getvalues =自然与人文 "success")public string test1() {  return "hello world";}

执行结果:

注解上的值:success

执行时间:8

执行类和方法:com.***.testcontroller test1

到此这篇关于springboot实现对注解的切面案例的文章就介绍到这了,更多相关spri药家ngboot实现对注解的切面内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 13:04:58,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3293cdb5c8503366445e595145adaf9b.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot实现对注解的切面案例.doc

本文 PDF 下载地址:springboot实现对注解的切面案例.pdf

标签:注解   切面   方法   执行时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图