注:1. Dubbo的註解方式須要升級到 2.5.7
及以上版本web
2. 本工程結構爲Spring Boot + Maven多模塊的方式,其中:spring
"xxx-api"模塊爲接口類定義模塊,api
"xxx-service"爲服務提供方模塊;springboot
"xxx-web"爲服務消費方模塊app
1、服務提供商(xxx-service模塊):ide
1.提供方全局配置:spa
@Configuration public class DubboConfiguration { @Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("provider-test"); return applicationConfig; } @Bean public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress("zookeeper://127.0.0.1:2181");return registryConfig; } }
2.service註解暴露服務:code
import com.alibaba.dubbo.config.annotation.Service; @Component //此註解不要忘記 @Service(timeout = 5000) public class AnnotateServiceImpl implements AnnotateService {
// 具體實現方法
}
3.Spring Boot啓動類添加服務掃描:blog
@SpringBootApplication @DubboComponentScan(basePackages = "com.alibaba.dubbo.test.service.impl") public class ProviderTestApp { // 啓動boot的main方法 }
2、服務消費方(xxx-web模塊):接口
1.消費方全局配置
@Configuration public class DubboConfiguration { @Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("consumer-test"); return applicationConfig; } @Bean public ConsumerConfig consumerConfig() { ConsumerConfig consumerConfig = new ConsumerConfig(); consumerConfig.setTimeout(3000); return consumerConfig; } @Bean public RegistryConfig registryConfig() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress("zookeeper://127.0.0.1:2181"); registryConfig.setClient("curator"); return registryConfig; } }
2.消費方註解引用服務:
public class AnnotationConsumeService { @com.alibaba.dubbo.config.annotation.Reference public AnnotateService annotateService; // ... }
3.Spring Boot啓動類添加服務掃描:
@SpringBootApplication @DubboComponentScan(basePackages = "com.alibaba.dubbo.test.service") public class ConsumerTestApp { // ... }
至此,便可完成了springboot和Dubbo的基本整合。