项目作者: teaey

项目描述 :
Dubbo Spring Boot 工程
高级语言: Java
项目地址: git://github.com/teaey/spring-boot-starter-dubbo.git
创建时间: 2016-07-07T08:36:18Z
项目社区:https://github.com/teaey/spring-boot-starter-dubbo

开源协议:Apache License 2.0

下载


spring-boot-starter-dubbo

spring-boot-start-dubbo,让你可以使用spring-boot的方式开发dubbo程序。使dubbo开发变得如此简单。

让你可以使用spring-boot的方式开发dubbo程序。使dubbo开发变得如此简单。

如何使用

1. clone代码(可选,已经发布到中央仓库,可以直接依赖中央仓库的稳定版本

  1. git clone git@github.com:teaey/spring-boot-starter-dubbo.git

2. 编译安装(可选)

  1. cd spring-boot-starter-dubbo
  2. mvn clean install

3. 修改maven配置文件(可以参考样例spring-boot-starter-dubbo-sample

  • spring boot项目的pom.xml增加parent:
  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>1.3.6.RELEASE</version>
  5. </parent>
  • spring boot项目的pom.xml中添加以下依赖:

根据实际情况依赖最新版本

  1. <dependency>
  2. <groupId>io.dubbo.springboot</groupId>
  3. <artifactId>spring-boot-starter-dubbo</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>
  • maven插件用于打包成可执行的uber-jar文件,添加以下插件(这里一定要加载需要打包成jarmudulepom中)
  1. <plugin>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-maven-plugin</artifactId>
  4. <version>1.3.6.RELEASE</version>
  5. </plugin>

4. 发布服务

服务接口:

  1. package cn.teaey.sprintboot.test;
  2. public interface EchoService {
  3. String echo(String str);
  4. }

application.properties添加Dubbo的版本信息和客户端超时信息,如下:

  1. spring.dubbo.application.name=provider
  2. spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
  3. spring.dubbo.protocol.name=dubbo
  4. spring.dubbo.protocol.port=20880
  5. spring.dubbo.scan=cn.teaey.sprintboot.test

Spring Applicationapplication.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录。

  • spring boot启动
  1. package cn.teaey.sprintboot.test;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class Server {
  6. public static void main(String[] args) {
  7. SpringApplication.run(Server.class, args);
  8. }
  9. }
  • 编写你的Dubbo服务,只需要添加要发布的服务实现上添加@Service,如下:
  1. package cn.teaey.sprintboot.test;
  2. import com.alibaba.dubbo.config.annotation.Service;
  3. @Service(version = "1.0.0")
  4. public class EchoServerImpl implements EchoService {
  5. public String echo(String str) {
  6. System.out.println(str);
  7. return str;
  8. }
  9. }

5. 消费Dubbo服务

  • application.properties添加Dubbo的版本信息和客户端超时信息,如下:
  1. spring.dubbo.application.name=consumer
  2. spring.dubbo.registry.address=zookeeper://192.168.99.100:32770
  3. spring.dubbo.scan=cn.teaey.sprintboot.test

Spring Applicationapplication.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录。

  • spring boot启动
  1. package cn.teaey.sprintboot.test;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.context.ConfigurableApplicationContext;
  5. @SpringBootApplication
  6. public class Client {
  7. public static void main(String[] args) {
  8. ConfigurableApplicationContext run = SpringApplication.run(Client.class, args);
  9. AbcService bean = run.getBean(AbcService.class);
  10. System.out.println(bean.echoService.echo("abccc"));
  11. }
  12. }
  • 引用Dubbo服务,只需要添加要发布的服务实现上添加@Reference,如下:
  1. package cn.teaey.sprintboot.test;
  2. import com.alibaba.dubbo.config.annotation.Reference;
  3. import org.springframework.stereotype.Component;
  4. @Component
  5. public class AbcService {
  6. @Reference(version = "1.0.0")
  7. public EchoService echoService;
  8. }

6. monitor监控中心

  • application.properties添加monitor监控中心配置(服务端和消费端相同),如下:
  1. spring.dubbo.monitor.protocol=registry

7. 打包

  • 可以直接执行Server或者Client启动
  • 可以通过mvn clean package打包成可执行的uber-jar文件