Nir*_*rav 18 java annotations cglib
我试图使用AOP框架创建一个对象,该框架使用CGLIB来创建代理对象.奇怪的是,"增强型"代理对象没有上一课所有的任何注释!
任何人都可以告诉我如何让CGLIB保留其创建的代理上的注释?
干杯! Nirav
noe*_*ego 15
CGLIB创建给定类的子类以生成代理.除非在注释定义中明确指定,否则注释不会保留在子类中.@Inherited注释用于此目的.
您可以在定义的注释中使用此批注,并使其在子类中可访问,如下所示:
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotation {
}
Run Code Online (Sandbox Code Playgroud)
这不是"保留"注释的问题.CGLIB代理实际上是目标对象类的子类.这些子类可能没有注释,但是它们的超类(即您自己的类)仍然会有它们.您使用的任何注释反射代码都需要能够查找类层次结构以查找注释.
| 归档时间: |
|
| 查看次数: |
5590 次 |
| 最近记录: |