官方Dubbo Spring Boot Starter 1.0.0 公測版即將發布

2021-01-07 開源中國

據阿里開發團隊宣布,Dubbo Spring Boot Starter 1.0.0 公測版已開發完畢,即將發布至 Maven 公有倉庫,目前正在內部測試中。

Dubbo Spring Boot Starter 致力於簡化 Dubbo 應用在 Spring Boot 環境中的開發,主要包括自動裝配(Auto-Configure)、外部化配置(Externalized-Configuration)以及生產準備(Actuator)等。

版本依賴

特別提醒,以下版本依賴尚未發布到 Maven 公有倉庫,請自行 checkout 代碼到本地,並且通過命令 $ ./mvnw clean install 構建:

<dependency>  <groupId>com.alibaba.boot</groupId>  <artifactId>dubbo-spring-boot-starter</artifactId>  <version>1.0.0-SNAPSHOT</version></dependency>

同時,dubbo-spring-boot-starter 底層依賴 Dubbo 2.5.9。

快速上手服務接口(RPC)

public interface DemoService {    String sayHello(String name);}

服務提供者(Provider)

實現DemoServer接口提供服務(放置於 com.alibaba.boot.dubbo.demo.provider.service包下):

@Service(        version = "1.0.0",        application = "${dubbo.application.id}",        protocol = "${dubbo.protocol.id}",        registry = "${dubbo.registry.id}")public class DefaultDemoService implements DemoService {    public String sayHello(String name) {        return "Hello, " + name + " (from Spring Boot)";    }}

配置application.properties 以提供外部化配置源:

# Spring boot applicationspring.application.name = dubbo-provider-demoserver.port = 9090management.port = 9091# Dubbo 組件 (如 @Service , @Reference) 掃描路徑,多路徑以","分割dubbo.scan.basePackages  = com.alibaba.boot.dubbo.demo.provider.service# Dubbo Config Bean 外部化配置dubbo.application.id = dubbo-provider-demodubbo.application.name = dubbo-provider-demodubbo.protocol.id = dubbodubbo.protocol.name = dubbodubbo.protocol.port = 12345dubbo.registry.id = my-registry

提供服務提供者引導類:

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

服務消費者(Consumer)

實現服務消費者 Controller (位於com.alibaba.boot.dubbo.demo.consumer.controller包下):

@RestControllerpublic class DemoConsumerController {    @Reference(version = "1.0.0",            application = "${dubbo.application.id}",            url = "dubbo://localhost:12345")    private DemoService demoService;    @RequestMapping("/sayHello")    public String sayHello(@RequestParam String name) {        return demoService.sayHello(name);    }}

增加外部化配置至application.properties:

# Spring boot applicationspring.application.name = dubbo-consumer-demoserver.port = 8080management.port = 8081# Dubbo Config Bean 外部化配置dubbo.application.id = dubbo-consumer-demodubbo.application.name = dubbo-consumer-demodubbo.protocol.id = dubbodubbo.protocol.name = dubbodubbo.protocol.port = 12345

提供服務消費者引導類:

@SpringBootApplication(scanBasePackages = "com.alibaba.boot.dubbo.demo.consumer.controller")public class DubboConsumerDemo {    public static void main(String[] args) {        SpringApplication.run(DubboConsumerDemo.class,args);    }}

相關焦點