美文网首页未分类
spring中通过注解获取局部变量的值(不可行)

spring中通过注解获取局部变量的值(不可行)

作者: alonwang | 来源:发表于2018-09-10 15:59 被阅读0次

    预期设想,对要处理的局部变量添加注解,使用Spring aop的after捕获,如果为空执行自定义逻辑

    public void example(){
    //通过注解获取这个变量的值,在aop捕获,再执行自定义逻辑
    @NonNull
    Long value=...
    }
    

    做到一半发现以下几个问题

    1. 元注解 ElementType中的LOCAL_VARIABLE已经不在class metadata中保存了

    从名称就知道这个是用来修饰局部变量的,查阅之后才知道这个字段已经不被class metadata中保存了,详见stackoverflow

    1. spring aop的ProceedingJoinPoint中无法获取到本地变量
      虽然LOCAL_VARIABLE不能用了,再次查阅之后看到java8新增了TYPE_PARAMETER,TYPE_USE这两个ElementType,粗略看了一下应该能实现获取局部变量功能,后面就悲剧了,Spring Aop的ProceedingJoinPoint是获取不到局部变量的,想实现要通过JavaParser之类的技术,但是这样做得不偿失.

    本意只想精简一下代码却引出这个多问题,不值得,此路不同,后面会研究一下Lombok的@NonNull实现方式,看能不能通过继承的方式实现自定义逻辑

    相关文章

      网友评论

        本文标题:spring中通过注解获取局部变量的值(不可行)

        本文链接:https://www.haomeiwen.com/subject/jdvsgftx.html