Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring代理不';t包含代理类的注释_Java_Spring_Spring Transactions - Fatal编程技术网

Java Spring代理不';t包含代理类的注释

Java Spring代理不';t包含代理类的注释,java,spring,spring-transactions,Java,Spring,Spring Transactions,我有一个用@Transactional注释的接口。然后是实现该接口的具体类。由于注释,spring为实现接口的每个类创建了一个代理 我的问题是,在容器启动时,我正在检查一些类是否使用特定的用户自定义类型注释进行了注释(如果没有,我将抛出一个异常)。代理上的getAnnotation()方法似乎返回null 代理是否不应该包含与代理类关联的所有属性(例如注释) Spring创建代理,默认情况下JDK动态代理,它基本上创建了一个动态类a引导时(那些漂亮的$Proxy42类),其作用类似于接口的实例。

我有一个用@Transactional注释的接口。然后是实现该接口的具体类。由于注释,spring为实现接口的每个类创建了一个代理

我的问题是,在容器启动时,我正在检查一些类是否使用特定的用户自定义类型注释进行了注释(如果没有,我将抛出一个异常)。代理上的getAnnotation()方法似乎返回null


代理是否不应该包含与代理类关联的所有属性(例如注释)

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);