Java Spring代理不';t包含代理类的注释
我有一个用@Transactional注释的接口。然后是实现该接口的具体类。由于注释,spring为实现接口的每个类创建了一个代理 我的问题是,在容器启动时,我正在检查一些类是否使用特定的用户自定义类型注释进行了注释(如果没有,我将抛出一个异常)。代理上的getAnnotation()方法似乎返回nullJava Spring代理不';t包含代理类的注释,java,spring,spring-transactions,Java,Spring,Spring Transactions,我有一个用@Transactional注释的接口。然后是实现该接口的具体类。由于注释,spring为实现接口的每个类创建了一个代理 我的问题是,在容器启动时,我正在检查一些类是否使用特定的用户自定义类型注释进行了注释(如果没有,我将抛出一个异常)。代理上的getAnnotation()方法似乎返回null 代理是否不应该包含与代理类关联的所有属性(例如注释) Spring创建代理,默认情况下JDK动态代理,它基本上创建了一个动态类a引导时(那些漂亮的$Proxy42类),其作用类似于接口的实例。
代理是否不应该包含与代理类关联的所有属性(例如注释) Spring创建代理,默认情况下JDK动态代理,它基本上创建了一个动态类a引导时(那些漂亮的$Proxy42类),其作用类似于接口的实例。如果您现在调用get类,您将得到动态创建的类 使用spring中的
aopproxutils
实用程序类获取包含注释的实际类
所以不是
Class<?> clazz = someObject.getClass();
Class clazz=someObject.getClass();
做
Class clazz=aopproxutils.ultimateTargetClass(someObject);
这将为您提供实际的(包装的)类
Class<?> clazz = AopProxyUtils.ultimateTargetClass(someObject);