未分类

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

2018-09-10  本文已影响0人  alonwang

预期设想,对要处理的局部变量添加注解,使用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实现方式,看能不能通过继承的方式实现自定义逻辑

上一篇 下一篇

猜你喜欢

热点阅读