zoukankan      html  css  js  c++  java
  • 修复dubbo注解与spring aop冲突的问题

    在使用dubbo2.8.4版本的时候,项目中有使用spring的声明式事务,dubbo的服务暴露使用了注解,发现服务一直没被监测到,后面查看源码debug,才发现dubbo有个bug,需要改动源码来修复。


    找到com.alibaba.dubbo.config.spring.AnnotationBean类,然后修改


    public Object postProcessAfterInitialization(Object bean, String beanName)方法的139行:

    if(isProxyBean(bean)){
    	  clazz = AopUtils.getTargetClass(bean);
    }
    //还没有获取到原始的calss对象,需要进一步解析
    if ("$$".contains(clazz.getName())) {
    	clazz = getSuperclass();	
    //如果获取值还是代理,则需要进一步解析
    if (clazz.getSimpleName().contains("$$")) {
    	clazz = clazz.getSuperclass();
    }
      
    Service service = clazz.getAnnotation(Service.class);

    public Object postProcessBeforeInitialization(Object bean, String beanName)方法的217行:

    if(isProxyBean(bean)){
    	  clazz = AopUtils.getTargetClass(bean);
    }
     //还没有获取到原始的calss对象,需要进一步解析
     if ("$$".contains(clazz.getName())) {
    	clazz = getSuperclass();	
     //如果获取值还是代理,则需要进一步解析
    if (clazz.getSimpleName().contains("$$")) {
    	clazz = clazz.getSuperclass();
    }
      
    Method[] methods = clazz.getMethods();


    修改完后,重新编译,然后将此类替换掉下载的jar包里的类。ps:jar包可以看成压缩包的形式打开。

  • 相关阅读:
    iframe跨页面调用函数
    $.extend()
    tab标签 插件 by 腾讯 jianminlu
    click事件多次触发 jQuery
    vertical-align
    display:inline-block
    在父页面访问iframe的东西
    2019牛客多校第三场
    2019HDU多校第一场
    2019江苏省赛
  • 原文地址:https://www.cnblogs.com/catgwj/p/7503301.html
Copyright © 2011-2022 走看看