开发者社区 问答 正文

cglib 生成的代理类,Annotation都没有了,怎么办 400 请求报错 

在使用 #Spring#  BeanNameAutoProxyCreator 的过程中发现,cglib 生成的代理类,类原来的 Annotation 都没有了, 这咋办?  原来的类上面有 @WebService 的标注, 我想用 AOP 做些预处理,于是就

    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <property name="beanNames" value="*WebService"/>
        <property name="interceptorNames">
            <list>
                <value>testAdvice</value>
            </list>
        </property>
    </bean>
,启动服务器时出错, 说代理类没有 @WebService 标注

展开
收起
kun坤 2020-05-29 11:26:24 630 分享 版权
1 条回答
写回答
取消 提交回答
  • 直接在注解上面加@Inherited

    @Inherited
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface MyAnnotation {
    }
    

    原来CGLIB 返回的代理类是基于原来类的子类的,加上这个标志就可以令子类继承这个注解

    2020-05-29 12:10:26
    赞同 展开评论
问答地址: