You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by me...@apache.org on 2020/04/24 06:49:50 UTC

[dubbo] branch master updated: set reference bean definition target type (#5710)

This is an automated email from the ASF dual-hosted git repository.

mercyblitz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 2ccd50f  set reference bean definition target type (#5710)
2ccd50f is described below

commit 2ccd50f0780c619f353d8d4ede1ab0647cbe2733
Author: mooseen <qu...@163.com>
AuthorDate: Fri Apr 24 14:49:31 2020 +0800

    set reference bean definition target type (#5710)
    
    Co-authored-by: quzijing <qu...@oppo.com>
---
 .../dubbo/config/spring/schema/DubboBeanDefinitionParser.java     | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
index 9c5d9c1..1cf027a 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
@@ -129,7 +129,13 @@ public class DubboBeanDefinitionParser implements BeanDefinitionParser {
                 parseProperties(element.getChildNodes(), classDefinition);
                 beanDefinition.getPropertyValues().addPropertyValue("ref", new BeanDefinitionHolder(classDefinition, id + "Impl"));
             }
-        } else if (ProviderConfig.class.equals(beanClass)) {
+        }  else if(ReferenceBean.class.equals(beanClass)){
+            String interfaceClassName = element.getAttribute("interface");
+            if(StringUtils.isNotEmpty(interfaceClassName)){
+                Class<?> interfaceClass = ReflectUtils.forName(interfaceClassName);
+                beanDefinition.setTargetType(interfaceClass);
+            }
+        }else if (ProviderConfig.class.equals(beanClass)) {
             parseNested(element, parserContext, ServiceBean.class, true, "service", "provider", id, beanDefinition);
         } else if (ConsumerConfig.class.equals(beanClass)) {
             parseNested(element, parserContext, ReferenceBean.class, false, "reference", "consumer", id, beanDefinition);