为什么80%的码农都做不了架构师?>>>   

本文章,主要描述了如何通过使用Dubbo,创建一个Hello World 项目

使用工具及软件版本

使用IDE:eclipse-neon

JDK:JDK1.8

Maven:3.3.3

SpringBoot:1.5.1.RELEASE

Zookeeper:3.4.10

需要创建三个Maven工程

springboot-dubbo-common:接口、通用类工程

springboot-dubbo-client:消费者工程

springboot-dubbo-server:提供者工程

项目创建时必须先在本机中或者其它设备中安装配置zookeeper并启动,启动之后再创建下面几个工程:

注:如果不知道zookeeper如何安装配置,请参照以下联接https://my.oschina.net/sdlvzg/blog/1305383

创建springboot-dubbo-common

在eclipse中创建一个maven项目

maven-archetype-quickstart

Group Id:org.spring.springboot

Artiface Id:springboot-dubbo-common

Package:org.spring.springboot

修改pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.spring.springboot</groupId><artifactId>springboot-dubbo-common</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springboot-dubbo-common</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>

创建实体类

package org.spring.springboot.domain;import java.io.Serializable;/*** 城市实体类** Created by bysocket on 07/02/2017.*/
public class City implements Serializable {private static final long serialVersionUID = -1L;public  City(Long id,Long provinceId,String cityName,String description){this.id = id;this.provinceId = provinceId;this.cityName = cityName;this.description =  description;}/*** 城市编号*/private Long id;/*** 省份编号*/private Long provinceId;/*** 城市名称*/private String cityName;/*** 描述*/private String description;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public Long getProvinceId() {return provinceId;}public void setProvinceId(Long provinceId) {this.provinceId = provinceId;}public String getCityName() {return cityName;}public void setCityName(String cityName) {this.cityName = cityName;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}@Overridepublic String toString() {return "City{" +"id=" + id +", provinceId=" + provinceId +", cityName='" + cityName + '\'' +", description='" + description + '\'' +'}';}
}

创建服务接口类

package org.spring.springboot.dubbo;import org.spring.springboot.domain.City;/*** 城市业务 Dubbo 服务层** Created by bysocket on 28/02/2017.*/
public interface CityDubboService {/*** 根据城市名称,查询城市信息* @param cityName*/City findCityByName(String cityName);
}

完成dubbo-api创建

创建springboot-dubbo-server

在eclipse中创建一个maven项目

maven-archetype-quickstart

Group Id:org.spring.springboot

Artiface Id:springboot-dubbo-server

Package:org.spring.springboot

修改pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>springboot</groupId><artifactId>springboot-dubbo-server</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-dubbo 服务端:: 整合 Dubbo/ZooKeeper 详解 SOA 案例</name><!-- Spring Boot 启动父依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.1.RELEASE</version></parent><properties><dubbo-spring-boot>1.0.0</dubbo-spring-boot></properties><dependencies><!-- Spring Boot Dubbo 依赖 --><dependency><groupId>io.dubbo.springboot</groupId><artifactId>spring-boot-starter-dubbo</artifactId><version>${dubbo-spring-boot}</version></dependency><!-- Spring Boot Web 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Test 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.spring.springboot</groupId><artifactId>springboot-dubbo-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

创建接口实现类

package org.spring.springboot.dubbo.impl;import org.spring.springboot.domain.City;
import org.spring.springboot.dubbo.CityDubboService;import com.alibaba.dubbo.config.annotation.Service;/*** 城市业务 Dubbo 服务层实现层** Created by bysocket on 28/02/2017.*/
// 注册为 Dubbo 服务
@Service(version = "1.0.0")
public class CityDubboServiceImpl implements CityDubboService {public City findCityByName(String cityName) {return new City(1L,2L,"温岭","是我的故乡");}
}

创建dubbo配置文件(application.properties),放在resources目录下

## Dubbo 服务提供者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=org.spring.springboot.dubbo

修改项目启动类

package org.spring.springboot;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Spring Boot 应用启动类** Created by bysocket on 16/4/26.*/
// Spring Boot 应用的标识
@SpringBootApplication
public class ServerApplication {public static void main(String[] args) {// 程序启动入口// 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件SpringApplication.run(ServerApplication.class,args);}
}

创建springboot-dubbo-client

在eclipse中创建一个maven项目

maven-archetype-quickstart

Group Id:org.spring.springboot

Artiface Id:springboot-dubbo-client

Package:org.spring.springboot

修改pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>springboot</groupId><artifactId>springboot-dubbo-client</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot-dubbo 客户端:: 整合 Dubbo/ZooKeeper 详解 SOA 案例</name><!-- Spring Boot 启动父依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.1.RELEASE</version></parent><properties><dubbo-spring-boot>1.0.0</dubbo-spring-boot></properties><dependencies><!-- Spring Boot Dubbo 依赖 --><dependency><groupId>io.dubbo.springboot</groupId><artifactId>spring-boot-starter-dubbo</artifactId><version>${dubbo-spring-boot}</version></dependency><!-- Spring Boot Web 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Test 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.spring.springboot</groupId><artifactId>springboot-dubbo-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

服务调用类

package org.spring.springboot.dubbo;import com.alibaba.dubbo.config.annotation.Reference;
import org.spring.springboot.domain.City;
import org.springframework.stereotype.Component;/*** 城市 Dubbo 服务消费者** Created by bysocket on 28/02/2017.*/
@Component
public class CityDubboConsumerService {@Reference(version = "1.0.0")CityDubboService cityDubboService;public void printCity() {String cityName="温岭";City city = cityDubboService.findCityByName(cityName);System.out.println(city.toString());}
}

创建dubbo配置文件(application.properties),放在resources目录下

## 避免和 server 工程端口冲突
server.port=8081## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=org.spring.springboot.dubbo

修改项目启动类

package org.spring.springboot.dubbo;import com.alibaba.dubbo.config.annotation.Reference;
import org.spring.springboot.domain.City;
import org.springframework.stereotype.Component;/*** 城市 Dubbo 服务消费者** Created by bysocket on 28/02/2017.*/
@Component
public class CityDubboConsumerService {@Reference(version = "1.0.0")CityDubboService cityDubboService;public void printCity() {String cityName="温岭";City city = cityDubboService.findCityByName(cityName);System.out.println(city.toString());}
}

启动测试

启动工程之前必须先确认Zookeepeer是否已经启动,如果已经启动执行以下操作

1、启动springboot-dubbo-server,通过项目Main方法(ServerApplication)进行启动工程

2、启动springboot-dubbo-client,通过项目Main方法(ClientApplication)进行启动工程,成功如下:

如果展示出了上图,就表示消费端调用提供端已经成功。

Hello Wrold 已经完成

转载于:https://my.oschina.net/sdlvzg/blog/1329957

Spring Boot 使用Dubbo 创建Hello Wrold相关推荐

  1. spring boot配置dubbo(properties)

    spring boot与dubbo配置(properties) dubbo和zookeeper配合使用,具体的它们之间的配置这里不说了. 一.spring boot与dubbo配置有两种方式: 1)s ...

  2. java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码

    java相关:Spring Boot如何动态创建Bean示例代码 发布于 2020-3-20| 复制链接 摘记: 前言本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来 ...

  3. spring boot配置dubbo注意事项

    spring boot配置dubbo注意事项 通过前两篇文章,知道了spring boot配置dubbo有两种方式.具体请回顾前两篇文章吧. 现在主要是说下spring boot在自己的applica ...

  4. spring boot配置dubbo(XML)

    上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤,那种配置有很多的功能(比如超时时间.是否检查)等等,配置起来也挺麻烦的,而我们也习惯传统的那种XML形 ...

  5. spring boot 整合Dubbo/Zookeeper

    spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...

  6. Spring Boot集成Dubbo多模块项目创建与配置

    目录 概述 使用工具 环境搭建 1.父模块创建 2.创建子模块 多模块项目配置 一. 父模块pom配置 1.继承设置 2.使用dependencyManagement管理依赖版本号 3.使用prope ...

  7. Spring Boot 整合dubbo与zookeeper实现不同项目之间数据通过服务的传递

    一.安装zookeeper 1.下载路径:http://mirrors.hust.edu.cn/apache/zookeeper/ 可以自己选择版本进行下载(同时支持windows和linux) 2. ...

  8. Spring boot整合dubbo

    GitHub dubbo的GitHub地址 https://github.com/apache/incubator-dubbo dubbo场景启动器 https://github.com/apache ...

  9. Spring Boot退出代码–创建自定义退出代码

    当运行Spring Boot应用程序时,一切正常,我们将获得系统退出代码0 . 对于任何未处理的异常,应用程序将返回退出代码1 . 我们有可能从Spring Boot应用程序返回自定义退出代码. 在本 ...

  10. 使用Spring Boot和MongoDB创建REST API

    Spring Boot是一个自以为是的框架,可简化Spring应用程序的开发. 它使我们摆脱了复杂配置文件的束缚,并帮助我们创建了不需要外部servlet容器的独立Spring应用程序. 这听起来实在 ...

最新文章

  1. 字段和属性之间有什么区别?
  2. div设置百分比高度 宽度
  3. VTK:可视化算法之TensorAxes
  4. 机器学习003-Kernel
  5. 产品设计的Kawaiization
  6. LeetCode 第 23 场双周赛(970/2044,前47.5%)
  7. 第 18 章 Policy
  8. java中什么是数组_JAVA中关于数组的定义
  9. Mac上使用中文Beamer添加各种格式的图片
  10. 在北京当 Python 程序员,能买起房吗?
  11. PHP过滤常用标签的正则表达式
  12. 第128篇 智能合约改进(ERC721)
  13. lg android平台驱动程序,lg g3刷KDZ教程-KDZ线刷工具及USB驱动下载
  14. mysql8.0怎么设置中文版_MySQL 8.0 版本修改字符编码
  15. 十张图看懂华为IPD和LTC
  16. 物联网技术与应用知识点总结
  17. 远程连接服务器出现channel is not opened通道未打开
  18. 华为电脑怎么把虚拟化打开_电脑怎么在bios开启虚拟化?
  19. 【面经】2021 中国农业银行 笔试编程题
  20. 图形界面介绍Summary Report

热门文章

  1. LAMP兄弟连PHP全民总动员
  2. 思考,思考,不停思考——《技术领导之路》序言
  3. 用JavaScript编写COM组件的实例
  4. 机器学习实战系列(七):数值回归与预测
  5. Coursera机器学习课后作业Matlab代码(1~9周)
  6. linux及windows文件共享
  7. linux常用软件推荐
  8. UNet以ResNet34为backbone in keras
  9. python一维数组聚类
  10. Android 在Activity界面下滑动ViewPager实现两个Fragment之间的切换?