本文是作者在使用dubbo开发的时候,在使用Junit写单元测试时,对于dubbo服务的消费者如果获取呢,最常用就是在测试类上加注解
@ContextConfiguration("/spring-test.xml"),把需要的dubbo服务、dubbo注册中心(如果有)、通信协议配置在spring-test.xml中,则可以像本地服务一样使用dubbo服务,启动的时候会启动spring容器。这样方式的麻烦点在spring-test的配置,有时候会比较头痛,今天作者提供一种零配置+注解的方式使用dubbo服务的方式,下面是简单的实现。
首先编写一个注解类,
InjectionDubbo:
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface InjectionDubbo {String registryAddress() default "192.168.0.61:2181";}
其中,registryAddress是注册中心的地址。
下面编写dubbo监听类,
InjectionDubboListener :
import com.alibaba.dubbo.config.ApplicationConfig;import com.alibaba.dubbo.config.ReferenceConfig;import com.alibaba.dubbo.config.RegistryConfig;import org.apache.commons.lang3.StringUtils;import org.springframework.test.context.TestContext;import org.springframework.test.context.TestExecutionListener;