Spring Boot 和 Dubbo整合(註解方式配置)

注: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的基本整合。

相關文章
相關標籤/搜索