Spring Boot 使用Dubbo 创建Hello Wrold
为什么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相关推荐
- spring boot配置dubbo(properties)
spring boot与dubbo配置(properties) dubbo和zookeeper配合使用,具体的它们之间的配置这里不说了. 一.spring boot与dubbo配置有两种方式: 1)s ...
- java动态创建bean的意义_java相关:Spring Boot如何动态创建Bean示例代码
java相关:Spring Boot如何动态创建Bean示例代码 发布于 2020-3-20| 复制链接 摘记: 前言本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来 ...
- spring boot配置dubbo注意事项
spring boot配置dubbo注意事项 通过前两篇文章,知道了spring boot配置dubbo有两种方式.具体请回顾前两篇文章吧. 现在主要是说下spring boot在自己的applica ...
- spring boot配置dubbo(XML)
上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤,那种配置有很多的功能(比如超时时间.是否检查)等等,配置起来也挺麻烦的,而我们也习惯传统的那种XML形 ...
- spring boot 整合Dubbo/Zookeeper
spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...
- Spring Boot集成Dubbo多模块项目创建与配置
目录 概述 使用工具 环境搭建 1.父模块创建 2.创建子模块 多模块项目配置 一. 父模块pom配置 1.继承设置 2.使用dependencyManagement管理依赖版本号 3.使用prope ...
- Spring Boot 整合dubbo与zookeeper实现不同项目之间数据通过服务的传递
一.安装zookeeper 1.下载路径:http://mirrors.hust.edu.cn/apache/zookeeper/ 可以自己选择版本进行下载(同时支持windows和linux) 2. ...
- Spring boot整合dubbo
GitHub dubbo的GitHub地址 https://github.com/apache/incubator-dubbo dubbo场景启动器 https://github.com/apache ...
- Spring Boot退出代码–创建自定义退出代码
当运行Spring Boot应用程序时,一切正常,我们将获得系统退出代码0 . 对于任何未处理的异常,应用程序将返回退出代码1 . 我们有可能从Spring Boot应用程序返回自定义退出代码. 在本 ...
- 使用Spring Boot和MongoDB创建REST API
Spring Boot是一个自以为是的框架,可简化Spring应用程序的开发. 它使我们摆脱了复杂配置文件的束缚,并帮助我们创建了不需要外部servlet容器的独立Spring应用程序. 这听起来实在 ...
最新文章
- 字段和属性之间有什么区别?
- div设置百分比高度 宽度
- VTK:可视化算法之TensorAxes
- 机器学习003-Kernel
- 产品设计的Kawaiization
- LeetCode 第 23 场双周赛(970/2044,前47.5%)
- 第 18 章 Policy
- java中什么是数组_JAVA中关于数组的定义
- Mac上使用中文Beamer添加各种格式的图片
- 在北京当 Python 程序员,能买起房吗?
- PHP过滤常用标签的正则表达式
- 第128篇 智能合约改进(ERC721)
- lg android平台驱动程序,lg g3刷KDZ教程-KDZ线刷工具及USB驱动下载
- mysql8.0怎么设置中文版_MySQL 8.0 版本修改字符编码
- 十张图看懂华为IPD和LTC
- 物联网技术与应用知识点总结
- 远程连接服务器出现channel is not opened通道未打开
- 华为电脑怎么把虚拟化打开_电脑怎么在bios开启虚拟化?
- 【面经】2021 中国农业银行 笔试编程题
- 图形界面介绍Summary Report