Dubbo SpringBoot配置方法

* SpringBoot與dubbo整合的三種方式:
* 1)、導入dubbo-starter,在application.properties配置屬性,使用@Service【暴露服務】使用@Reference【引用服務】
* 2)、保留dubbo xml配置文件;
* 導入dubbo-starter,使用@ImportResource導入dubbo的配置文件便可
* 3)、使用註解API的方式:
* 將每個組件手動建立到容器中,讓dubbo來掃描其餘的組件

服務提供方

Service註解暴露服務

@Service public class AnnotationServiceImpl implements AnnotationService { @Override public String sayHello(String name) { return "annotation: hello, " + name; } } 

增長應用共享配置

# dubbo-provider.properties dubbo.application.name=annotation-provider dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.protocol.name=dubbo dubbo.protocol.port=20880 

指定Spring掃描路徑

@Configuration @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.impl") @PropertySource("classpath:/spring/dubbo-provider.properties") static public class ProviderConfiguration { } 

服務消費方

Reference註解引用服務

@Component("annotationAction") public class AnnotationAction { @Reference private AnnotationService annotationService; public String doSayHello(String name) { return annotationService.sayHello(name); } } 

增長應用共享配置

# dubbo-consumer.properties dubbo.application.name=annotation-consumer dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.consumer.timeout=3000 

指定Spring掃描路徑

@Configuration @EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.simple.annotation.action") @PropertySource("classpath:/spring/dubbo-consumer.properties") @ComponentScan(value = {"org.apache.dubbo.samples.simple.annotation.action"}) static public class ConsumerConfiguration { } 

調用服務

public static void main(String[] args) throws Exception { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConsumerConfiguration.class); context.start(); final AnnotationAction annotationAction = (AnnotationAction) context.getBean("annotationAction"); String hello = annotationAction.doSayHello("world"); } 
相關文章
相關標籤/搜索