- 主题:Java的annotation是如何实现的?
这是Spring的注解吧,你看看源代码,都是有个注册类扫描这个注解的,直接搜下这个注解用在哪里吧,具体怎么扫描可以扫到,就是楼上说的虚拟机给你构造了一个代理类
【 在 dpblue (deep blue) 的大作中提到: 】
: 刚从C++转过来的,觉得Java的annotation挺神奇
:
: 比如在一个函数前面加上@Cacheable,这样系统就会自动给这个类的对象生成代理对象,以便支持cache
:
--
FROM 117.136.0.*
你可以给他降下jdk的代理类是怎么实现的,至于nglib就算了
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 容器做的。程序员不能手动构造这个类,必须托管给容器。
:
: 容器在实例化类型的时候,实际并不是实例化那个类,而是用字节码生成或者其它 AOP 技术,弄个新的加强类型出来,再去实例化加强类型。
:
--
FROM 117.136.0.*
运行起来就和编译器没关系了,是虚拟机运行字节码的
【 在 No1 () No1 () 的大作中提到: 】
: 这分明是编译器做的事情嘛,就是给你个接口可以自定义annotation完成一定的语法扩展功能。
:
: 像Lisp这种更先进,直接开放reader给你可以自造语法和语义
:
--
FROM 117.136.0.*