Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程
环境:springboot + dubbo +zookeeper。工程完整文件目录如下:
主要步骤:
- 创建maven工程并添加pom依赖
- 添加springboot配置文件
- 编写服务接口实现类
- 编写springboot启动类
- 启动工程在dubbo管理平台查看应用
- 附:公共接口模块工程
一、创建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服务提供者工程相关推荐
- Dubbo(七)使用SpringBoot搭建dubbo消费者工程
本章将创建一个dubbo 消费者工程并实现远程调用消费者示例.环境:springboot + dubbo + zookeeper, 工程目录如下: 主要步骤: 创建maven工程添加pom依赖 创建S ...
- Dubbo(十五)springboot工程dubbo整合SpringCloud Hystrix
本章将编写一个使用SpringBoot工程集成dubbo使用hystrix组件实现服务熔断示例.包含服务提供者工程和服务消费者工程.主要在实现整合springcloud hystrix过程步骤如下: ...
- springboot+dubbo+zk集群搭建
zookeeper的集群搭建在上一编已经说过,不会的可以查看. 下面开始搭建springboot+dubbo+zk注册中心的demo 生产者工程目录如图 一.创建dubbo-provider父工程 父 ...
- 搭建大型分布式服务(十四)SpringBoot整合dubbo starter
一.本文要点 接上文,我们已经把SpringBoot整合mybatis+Hikari+es+redis+kafka了,本文将介绍SpringBoot如何整合dubbo.系列文章完整目录 dubbo注解 ...
- SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统
QUESTIONl:SpringBoot整合Dubbo+Zookeeper进行分布式搭建系统? ANSWER: 一:创建项目模块 1.1.创建一个Empty Project 名称:Dubbo 1.2. ...
- Springboot整合dubbo搭建基本的消费、提供和负载均衡
文章目录 1.确定接口 2.创建提供者 2.1 pom配置 2.2dubbo配置文件 2.3 application.properties 2.4 mybatis相关 2.4.1 配置UserMapp ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...
- dubbo protocol port 消费者端_企业级 SpringBoot 与 Dubbo 的并用
点击上方"匠心零度",选择"设为星标" 做积极的人,而不是积极废人 作者:SimpleWu cnblogs.com/SimpleWu/p/10833555.ht ...
- Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
"看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一想,都没有什么大不了的.这能帮助自己在遇到挫折时稳定心态,想得更开." – <腾讯 ...
最新文章
- mac下mysql的安装
- 计算机网络职称可以免考么,谁知道四川职称计算机考试的免考条件啊,我要去评职称,但不想去考职? 爱问知识人...
- 我的Android进阶之旅------Android中高低API版本兼容使用@TargetApi或者@SuppressLint(NewApi)...
- 分析工厂模式中的问题并改造
- [蓝桥杯][2014年第五届真题]稍大的串(STL)
- linux一切皆是文件_LINUX一切皆文件
- 在JAVA中把JSON数据格式化输出到控制台
- 如何判定某个类的职责是否够“单一”?
- 控件多线程访问的问题
- java核心技术卷I 第4-5章
- SP324099: 无法完成操作--VS2015社区版无法登陆
- java 错误 找不到符号_java错误:找不到符号
- AES加密解密C语言实现
- [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
- 诺维信和科汉森合并获股东批准,将共同创建一家世界一流的发酵公司
- 单细胞转录组实战01: CellRanger7定量
- random.RandomState()用处
- 2 Robotics: Computational Motion Planning 第2+3+4周 课后习题解答
- Go1.20 arena新特性示例详解
- 滤波电容的原理到底是什么???