环境:springboot + dubbo +zookeeper。工程完整文件目录如下:

主要步骤:

  1. 创建maven工程并添加pom依赖
  2. 添加springboot配置文件
  3. 编写服务接口实现类
  4. 编写springboot启动类
  5. 启动工程在dubbo管理平台查看应用
  6. 附:公共接口模块工程

一、创建maven工程并添加pom依赖

pom.xml 中主要包含 公共接口模块、sprignboot 依赖模块、以及dubbo和zookeeper模块。我们使用的apache的dubbo 依赖。其中公共接口模块文章最后部分提供代码。

<?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>com.xiaohui.bootuserserviceprovider</groupId><artifactId>boot-user-service-provider</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version><maven-jar-plugin.version>3.1.1</maven-jar-plugin.version><dubbo.version>2.7.3</dubbo.version></properties><dependencies><!-- 公共接口模块 --><dependency><groupId>com.xiaohui.serviceinterface</groupId><artifactId>service-interface</artifactId><version>1.0</version></dependency><!-- spring boot 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>1.5.4.RELEASE</version><optional>true</optional></dependency><!-- dubbo zookeeper 依赖 --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><version>${dubbo.version}</version><type>pom</type><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency></dependencies></project>

二、添加SpringBoot配置文件application.properties

主要配置了该提供者的应用名称dubbo.application.name、注册中心的地址 dubbo.registry.address、dubbo的协议名称和端口。

dubbo.application.name=user-service-provider
dubbo.registry.address=zookeeper://192.168.0.126:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

三、编写服务接口实现类对外暴露

在接口实现类中主要实现服务接口的调用代码,并使用@org.apache.dubbo.config.annotation.Service 类注解进行接口注册进行对外暴露。类注解为dubbo 的@Service 注解不是spring注解,这里是重点,不能遗漏。

package com.xiaohui.service.impl;import com.xiaohui.domain.UserAddress;
import com.xiaohui.service.UserService;
import org.apache.dubbo.config.annotation.Service;import java.util.ArrayList;
import java.util.List;@Service //apache dubbo service 注解
public class UserServiceImpl implements UserService {public static List<UserAddress> address = new ArrayList<UserAddress>();static{address.add(new UserAddress(1,"西安市未央区阿房一路","10001"));address.add(new UserAddress(2,"郑州市中原区冬青街","10002"));}public List<UserAddress> queryAllUserAddress(String userId) {System.out.println("入参:"+userId);return address;}
}

四、编写springboot启动类

与其他springboot启动类需要注意的是记得要给启动类添加dubbo 类注解org.apache.dubbo.config.spring.context.annotation.EnableDubbo

package com.xiaohui;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubbo
public class BootProviderApplication {public static void main(String[] args) {SpringApplication.run(BootProviderApplication.class, args);System.out.println("服务提供者启动....");}
}

五、启动工程在dubbo管理平台查看服务提供者应用

访问 http://192.168.0.126:7001/governance/applications 查看注册的应用信息。

六、公共接口模块代码:

1,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>com.xiaohui.serviceinterface</groupId><artifactId>service-interface</artifactId><version>1.0</version><properties><lombok.version>1.18.10</lombok.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency></dependencies></project>

2.java 类

package com.xiaohui.domain;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserAddress implements Serializable {private Integer id;private String userAddress;private String userId;
}
package com.xiaohui.service;import com.xiaohui.domain.UserAddress;
import java.util.List;public interface OrderService {public List<UserAddress> initOrder(String userId);
}
package com.xiaohui.service;import com.xiaohui.domain.UserAddress;import java.util.List;public interface UserService {/*** 查询某个用户的全部地址* @param userId* @return*/public List<UserAddress> queryAllUserAddress(String userId);
}

Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程相关推荐

  1. Dubbo(七)使用SpringBoot搭建dubbo消费者工程

    本章将创建一个dubbo 消费者工程并实现远程调用消费者示例.环境:springboot + dubbo + zookeeper, 工程目录如下: 主要步骤: 创建maven工程添加pom依赖 创建S ...

  2. Dubbo(十五)springboot工程dubbo整合SpringCloud Hystrix

    本章将编写一个使用SpringBoot工程集成dubbo使用hystrix组件实现服务熔断示例.包含服务提供者工程和服务消费者工程.主要在实现整合springcloud hystrix过程步骤如下: ...

  3. springboot+dubbo+zk集群搭建

    zookeeper的集群搭建在上一编已经说过,不会的可以查看. 下面开始搭建springboot+dubbo+zk注册中心的demo 生产者工程目录如图 一.创建dubbo-provider父工程 父 ...

  4. 搭建大型分布式服务(十四)SpringBoot整合dubbo starter

    一.本文要点 接上文,我们已经把SpringBoot整合mybatis+Hikari+es+redis+kafka了,本文将介绍SpringBoot如何整合dubbo.系列文章完整目录 dubbo注解 ...

  5. SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统

    QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...

  6. Springboot整合dubbo搭建基本的消费、提供和负载均衡

    文章目录 1.确定接口 2.创建提供者 2.1 pom配置 2.2dubbo配置文件 2.3 application.properties 2.4 mybatis相关 2.4.1 配置UserMapp ...

  7. Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...

  8. dubbo protocol port 消费者端_企业级 SpringBoot 与 Dubbo 的并用

    点击上方"匠心零度",选择"设为星标" 做积极的人,而不是积极废人 作者:SimpleWu cnblogs.com/SimpleWu/p/10833555.ht ...

  9. Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课

    "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一想,都没有什么大不了的.这能帮助自己在遇到挫折时稳定心态,想得更开." – <腾讯 ...

最新文章

  1. mac下mysql的安装
  2. 计算机网络职称可以免考么,谁知道四川职称计算机考试的免考条件啊,我要去评职称,但不想去考职? 爱问知识人...
  3. 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...
  4. 分析工厂模式中的问题并改造
  5. [蓝桥杯][2014年第五届真题]稍大的串(STL)
  6. linux一切皆是文件_LINUX一切皆文件
  7. 在JAVA中把JSON数据格式化输出到控制台
  8. 如何判定某个类的职责是否够“单一”?
  9. 控件多线程访问的问题
  10. java核心技术卷I 第4-5章
  11. SP324099: 无法完成操作--VS2015社区版无法登陆
  12. java 错误 找不到符号_java错误:找不到符号
  13. AES加密解密C语言实现
  14. [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
  15. 诺维信和科汉森合并获股东批准,将共同创建一家世界一流的发酵公司
  16. 单细胞转录组实战01: CellRanger7定量
  17. random.RandomState()用处
  18. 2 Robotics: Computational Motion Planning 第2+3+4周 课后习题解答
  19. Go1.20 arena新特性示例详解
  20. 滤波电容的原理到底是什么???

热门文章

  1. MyBatis中使用LIKE关键字模糊查询
  2. Java 面向对象:instanceof和类型转换的理解
  3. 如何用python处理txt_python处理txt文件操作
  4. Asp.Net前台调用后台变量
  5. 计算机网络课程优秀备考PPT之第一章概述(一)
  6. Mac清理软件为苹果系统迅速减压
  7. Redis__WindowsServer主从服务部署及调用实例
  8. linux下移除环境变量及mkdir命令介绍
  9. 如何管理好IDC机房?(一)
  10. 超级终端设置-基本配置(华为)