# spring-boot-starter-dubbo **Repository Path**: QlanGit/spring-boot-starter-dubbo ## Basic Information - **Project Name**: spring-boot-starter-dubbo - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-07-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-boot-starter-dubbo spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序。使dubbo开发变得如此简单。 让你可以使用`spring-boot`的方式开发`dubbo`程序。使`dubbo`开发变得如此简单。 ## 如何使用 ### 1. `clone`代码(可选,已经发布到中央仓库,可以直接依赖[中央仓库的稳定版本](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22io.dubbo.springboot%22%20AND%20a%3A%22spring-boot-starter-dubbo%22)) ```sh git clone git@github.com:teaey/spring-boot-starter-dubbo.git ``` ### 2. 编译安装(可选) ```sh cd spring-boot-starter-dubbo mvn clean install ``` ### 3. 修改`maven`配置文件(可以参考样例[`spring-boot-starter-dubbo-sample`](https://github.com/teaey/spring-boot-starter-dubbo-sample)) * 在`spring boot`项目的`pom.xml`增加`parent`: ```xml org.springframework.boot spring-boot-starter-parent 1.3.6.RELEASE ``` * 在`spring boot`项目的`pom.xml`中添加以下依赖: 根据实际情况依赖最新版本 ```xml io.dubbo.springboot spring-boot-starter-dubbo 1.0.0 ``` * `maven`插件用于打包成可执行的`uber-jar`文件,添加以下插件(这里一定要加载需要打包成`jar`的`mudule`的`pom`中) ```xml org.springframework.boot spring-boot-maven-plugin 1.3.6.RELEASE ``` ### 4. 发布服务 服务接口: ```java package cn.teaey.sprintboot.test; public interface EchoService { String echo(String str); } ``` 在`application.properties`添加`Dubbo`的版本信息和客户端超时信息,如下: ```properties spring.dubbo.application.name=provider spring.dubbo.registry.address=zookeeper://192.168.99.100:32770 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=20880 spring.dubbo.scan=cn.teaey.sprintboot.test ``` 在`Spring Application`的`application.properties`中添加`spring.dubbo.scan`即可支持`Dubbo`服务发布,其中`scan`表示要扫描的`package`目录。 * `spring boot`启动 ```java package cn.teaey.sprintboot.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Server { public static void main(String[] args) { SpringApplication.run(Server.class, args); } } ``` * 编写你的`Dubbo`服务,只需要添加要发布的服务实现上添加`@Service`,如下: ```java package cn.teaey.sprintboot.test; import com.alibaba.dubbo.config.annotation.Service; @Service(version = "1.0.0") public class EchoServerImpl implements EchoService { public String echo(String str) { System.out.println(str); return str; } } ``` ### 5. 消费`Dubbo`服务 * 在`application.properties`添加`Dubbo`的版本信息和客户端超时信息,如下: ```properties spring.dubbo.application.name=consumer spring.dubbo.registry.address=zookeeper://192.168.99.100:32770 spring.dubbo.scan=cn.teaey.sprintboot.test ``` 在`Spring Application`的`application.properties`中添加`spring.dubbo.scan`即可支持`Dubbo`服务发布,其中`scan`表示要扫描的`package`目录。 * `spring boot`启动 ```java package cn.teaey.sprintboot.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class Client { public static void main(String[] args) { ConfigurableApplicationContext run = SpringApplication.run(Client.class, args); AbcService bean = run.getBean(AbcService.class); System.out.println(bean.echoService.echo("abccc")); } } ``` * 引用`Dubbo`服务,只需要添加要发布的服务实现上添加`@Reference`,如下: ```java package cn.teaey.sprintboot.test; import com.alibaba.dubbo.config.annotation.Reference; import org.springframework.stereotype.Component; @Component public class AbcService { @Reference(version = "1.0.0") public EchoService echoService; } ``` ### 6. `monitor`监控中心 * 在`application.properties`添加`monitor`监控中心配置(服务端和消费端相同),如下: ```properties spring.dubbo.monitor.protocol=registry ``` ### 7. 打包 - 可以直接执行`Server`或者`Client`启动 - 可以通过`mvn clean package`打包成可执行的`uber-jar`文件