[Case 31] Dubbo-Spring-Boot-Starter

  dubbo

Order

This article mainly shows the use of dubbo-spring-boot-starter.

maven

        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>        

service-impl

application.yml

spring:
  application:
    name: service-impl
  dubbo:
    server: true
    application:
      name: service-impl
    registry:
      address: zookeeper://127.0.0.1:2181
    protocol:
      name: dubbo
      port: 20880
    scan:
      basePackages: com.example

EnableDubboConfiguration

@SpringBootApplication
@EnableDubboConfiguration
public class ServiceImplApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServiceImplApplication.class, args);
    }
}

EchoServiceImpl

@Service(interfaceClass = EchoService.class)
@Component
public class EchoServiceImpl implements EchoService {
    @Override
    public String echo(String content) {
        return "hello:" + Objects.toString(content,"null");
    }
}

consumer

application.yml

spring:
  application:
    name: consumer-demo
dubbo:
  application:
    name: consumer-demo
  registry:
    address: zookeeper://127.0.0.1:2181
  protocol:
    name: dubbo
  scan:
    basePackages: com.example

EnableDubbo

@SpringBootApplication
@EnableDubbo
public class ConsumerDemoApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerDemoApplication.class, args);
    }


    @Autowired
    ConsumerService consumerService;

    @Override
    public void run(String... args) throws Exception {
        System.out.println(consumerService.echo("world"));
    }
}

Reference

@Component
public class ConsumerService {

    @Reference
    EchoService echoService;

    public String echo(String content){
        return echoService.echo(content);
    }
}

Summary

Dubbo-spring-boot-starter’s official documents seem to be rather rough and not in line with the style of spring boot’s open source project, nor does it see the example project. In practice, it takes a little effort.

doc