Spring Boot简化了微服务应用的配置和部署,您可以自行选择注册中心和配置管理。本文介绍如何使用Spring Boot注解的方式基于Nacos开发一个Dubbo微服务示例应用。如果您已有Spring
Boot开发的Dubbo应用,可以跳过本文内容,直接部署到EDAS。
前提条件
在使用Spring Boot开发Dubbo微服务应用前,请先完成以下工作:
示例工程
您可以按照本文的逐步搭建工程,也可以选择直接下载本文对应的示例工程,或者使用Git来clone:git clone https://github.com/aliyun/alibabacloud-microservice-demo.git
该项目包含了众多了示例工程,本文对应的示例工程位于alibabacloud-microservice-demo/microservice-doc-demo/dubbo-samples-spring-boot
。
创建服务提供者
- 创建命名为
spring-boot-dubbo-provider
的Maven工程。
- 在
pom.xml
文件中添加所需的依赖。
这里以Spring Boot 2.0.6.RELEASE为例。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.6.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
- 开发Dubbo服务提供者。
Dubbo中服务都是以接口的形式提供的。
- 在
src/main/java
路径下创建一个packagecom.alibaba.edas.boot
。
- 在
com.alibaba.edas.boot
下创建一个接口(interface)IHelloService
,里面包含一个SayHello
方法。package com.alibaba.edas.boot;
public interface IHelloService {
String sayHello(String str);
}
- 在
com.alibaba.edas.boot
下创建一个类IHelloServiceImpl
,实现此接口。package com.alibaba.edas.boot;
import com.alibaba.dubbo.config.annotation.Service;
@Service
public class IHelloServiceImpl implements IHelloService {
public String sayHello(String name) {
return "Hello, " + name + " (from Dubbo with Spring Boot)";
}
}
说明 这里的Service注解是Dubbo提供的一个注解类,类的全名称为:com.alibaba.dubbo.config.annotation.Service。
- 配置Dubbo服务。
- 在
src/main/resources
路径下创建application.properties
或application.yaml
文件并打开。
- 在
application.properties
或application.yaml
中添加如下配置。# Base packages to scan Dubbo Components (e.g @Service , @Reference)
dubbo.scan.basePackages=com.alibaba.edas.boot
dubbo.application.name=dubbo-provider-demo
dubbo.registry.address=nacos://127.0.0.1:8848