2 qq 16091839 qq_16091839 于 2017.09.04 09:59 提问

java怎么把方法的参数值动态赋值到该方法的注解上

图片说明
java怎么把方法的参数值赋值到该方法的注解上

8个回答

shaobo7705601
shaobo7705601   2017.09.04 16:26
已采纳

http://blog.csdn.net/shaobo7705601/article/details/77838496

注解式日志,我按你的想法写了个实现,你看下,希望给个采纳

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.04 16:38

【追加】早上做的那个有个BUG,,更新了,,如下

链接: https://pan.baidu.com/s/1eRSdQ6I 密码: jq57

【原理】

【1】利用JVM动态加载机制,,我动态生成一个新的class,,和原来一样(仅动态修改注解内容)
【2】然后把你需要注入的内容,通过反射动态注入到注解中,生成一个新的class(官方提供的反射不是很给力,在此使用【javassist】)
【3】有了新生成了一个需要的class,,就好办了,,该干嘛干嘛,,无论是Spring配置,还是代码中classForName,,都不是问题。

图片说明

本人亲测,截图如上,,,有问题可追问,,代码知识Demo并未做优化(意思到了)

playboyanta123
playboyanta123   2017.09.04 10:01

不知道能不能做到,没试过,顶一下

qq_33363288
qq_33363288   2017.09.04 10:04

不知道能不能做到,没试过,顶一下

qq_38005982
qq_38005982   2017.09.04 10:12

我感觉不太现实啊!因为第一步从mapping这里出发就需要先知道要发给谁,可是你要是想让里面的value的值随着传来的数据变化而变化说真的不现实,因为这个进程不论怎么走肯定mapping先
,而且你的info是多变的,你要对应多少个不同的页面?这本身就有点不现实

shaobo7705601
shaobo7705601   2017.09.04 10:17

可以,但是你方法体内部需要写调用该log注解的方法。

qq_16091839
qq_16091839 谢谢 好厉害
3 个月之前 回复
shaobo7705601
shaobo7705601 回复qq_16091839: requestMapping的实现方式你可以看下源码。我写个简单的实现给你们吧,稍等我把地址发出来
3 个月之前 回复
qq_16091839
qq_16091839 我这里还真的没有实现,所以才来提问题 我的想法就像用@PathVariable注解一样 @RequestMapping(value="select/{id}",method=RequestMethod.GET) public String selectMessage(@PathVariable String id ,Model model){,在注解上获得方法参数的值,主要就是通过自定义注解实现一个记录日志的功能。我还在想具体怎么实现呢 ,有好的实现记得和我说着一下啊
3 个月之前 回复
shaobo7705601
shaobo7705601 回复我本狂儒: 首先不是大神。。。楼主既然贴出来代码,估计项目里边肯定已经有了实现,我不确定我想的实现跟他的是否一样或者人家的更高端,我的实现方法需要在saveUserInfo里边再调用一个特定的方法,在高端一点可以把调用方法的过程也用注解去实现,你要是要实现的话我可以基于他的代码写一个
3 个月之前 回复
qq_38005982
qq_38005982 大神有网址没?让我也学习一下
3 个月之前 回复
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.04 12:23

搞了两个多小时,,,这是测试案例(给个采纳呗)

链接: https://pan.baidu.com/s/1dEJsyRZ 密码: wcpi

IsStyleBoy
IsStyleBoy   2017.09.04 16:24

长见识了 弄出来了可以分享一下

Csdn user default icon
上传中...
上传图片
插入图片