dubbo 单元测试_Dubbo--->day02

本文详细介绍了Dubbo项目创建的过程,包括创建Parent、pojo、Mapper、provider和consumer工程。讲解了如何配置provider,编写测试类确保服务发布成功。同时,阐述了Zookeeper在服务注册中的作用。在服务提供者方面,实现了增删改查功能,并配置了相关XML和打包插件。在消费者端,实现了业务接口,通过Controller调用服务并部署到Tomcat。
摘要由CSDN通过智能技术生成

Dubbo创建项目

7676f0efde7c2c595d9504c9db5296f5.png

按照day01天的架构流程图,在注册时候需要Zookeeper,这里需要引入Zookeeper。


1、创建Parent工程,用于统一管理资源。

2、创建pojo工程,继承Parent工程。

创建实体类,实现序列化接口。

3、创建Mapper工程,继承Parent工程,并修改pom.xml配置文件。

3.1、在配置文件中,找到父工程里面关于操作数据库的坐标,将该坐标添加到依赖当中。	
3.2、在配置文件中,将pojo坐标添加到依赖当中。(因为要操作实体,所以将pojo坐标进行注入到依赖中)
3.3、在配置文件中,将资源拷贝插件的坐标添加到依赖中。(因为Mapper的映射文件并没有放到resouce目录下,在打包的时候是找不到该xml文件的,所以要配置资源拷贝文件。)

4、创建provider工程,工程类型pom类型,该工程作为一个聚合工程,并该继承Parent工程。

4.1、创建user-interface模块,在pom.xml文件中将pojo的坐标注入到依赖中。
		该模块用于存放服务的接口,而定义接口需要实体类型,所以需要将pojo的坐标注入到依赖中

4.2、创建user-service模块,在pom.xml文件中将mapper、interface,dubbo、zkczlient坐标注入到依赖中。
		因为要做接口的实现类,所以依赖interface坐标。
		因为要做服务的具体实现,所以依赖dubbo坐标。
		dubbo导入进来后,需要连接Zookeeper注册中心,所以依赖zkclient坐标。
		该项目最后也是要操作数据库的,所以依赖mapper坐标,当注入mapper坐标后,会级联注入pojo坐标。

 注意:
 关于dubbo于spring的jar注入问题,有两种解决方案:
		1、依赖dubbo的坐标导入spring的容器所依赖的jar包,在使用过程中缺少spring的组件时,需要手动添加坐标。
		2、在添加dubbo的坐标中剔除已包含的spring的jar包,自己手动导入所有使用spring组件的坐标。	

5、配置provider

5.1、添加spring配置文件。
		数据源(和mybaits进行了整合)、扫描、事务。
5.2、添加mybtais配置文件。
		分页插件。
5.3、添加db.properties数据库连接文件。
5.4、添加dubbo配置文件。

              需要注意:
			按照dubbo架构图的执行流程,要启动Provider,首先要启动的是spring容器,但默认的是依赖于Dubbo的Main类下面的main方法来启动spring,
而Dubbo会自动去找类路径下的META-INF/spring/*.xml文件,那么其它的spring配置文件就被忽略无法启动了,这时需要将其他的spring文件导入到该dubbo.xml文件中,当解析dubbo配置文件的时候,就可以将其余的spring配置文件给解析了。

6、编写测试类,测试是否能够发布成功

因为项目是Provider,按照架构图的执行流程,在启动时需要注册Registory,所以要连接Zookeeper,那么首先要启动Zookeeper。

c68c2c038fbd13e043eb93bd47f6b76d.png

7、创建consumer,工程类型为pom,该工程作为聚合工程,并继承父工程Parent。

	7.1、创建dubbo-user-protal(war)模板。
		该模板负责处理客户端请求,可以理解为controller。
	       注入单元测试、日志、spring、dubbo和tomcat插件的依赖。
	7.2、创建dubbo-user-protal-service(war)模板,该模板里面存放着业务层的逻辑代码。
		该模板是将整个项目的业务层给分离出来了放入到了这个模板中。
		在pom.xml文件中添加坐标依赖。
		接口模块、pojo工程、spring-context、spring-beans
	7.2.1、配置web.xml文件。

8、启动tomcat。

启动前需要将项目的jar包进行打包,具体看依赖。

7573474a7a12dc0e89d6882cfaafd16e.png

服务中的增删改查的实现

增加数据过程

1、在mapper项目中的mapper接口中,添加新增数据的方法。

2、在mapper的映射文件中,添加实现数据的标签。

3、具体的mapper应该由服务来调用,那么先创建服务的接口dubbo-user-interface,在接口创建完成后,因为是项目分离,需要在service项目中去创建实现类。

4、创建接口的实现类,那么在发布的时候,服务最终执行的就service中的代码。

通俗讲,加上@Service注解,调用mapper操作数据库,使用@Autowired自动装配。

mapper是在之前依赖关系中已经被注入了,所以可以直接调用。

24b8cfe722f0689c4ad9b76c5cf087f0.png

5、Provider.xml配置文件

ea0df130e27e377fe21542a77ed33604.png

6、配置Assembly打包插件

6.1、需要在项目的根下创建一个目录,名称为:assembly。
6.2、将插件中的bin和conf文件拷贝到assembly中。
6.3、将conf目录下的dubbo.properties文件中内容清空。
6.4、需要在assembly的根目录下创建一个assembly.xml的配置文件。

25e7a905f0d3b3714bf1394cf2a35877.png
6.2

005048bf32333d2f715c2541fb144224.png
需要在assembly的根目录下assembly.xml的配置文件。
6.5、需要修改项目的pom文件添加assembly的打包插件。

bc3b374da5e235a5612921810740a224.png
6.6、执行Maven的Install命令。
		Maven插件执行是依赖于命令的。
6.7、将打好的包上传到Linux中,并解压到指定文件夹中。

7ac1840301754a2fa1e542a5fa0ed223.png
将Provider打包
6.8、找到解压后的文件夹,该文件夹中存有3个目录,bin、conf、lib,在bin目录中可以通过start.sh启动服务,当服务启动后,会生成该文件的根下生成logs文件夹,里面存有日志文件,
通过访问日志文件来查看服务是否启动成功

54e93dc171a31e252a6962e43f854c62.png
找到Provider解压过后的文件,在bin目录下通过start.sh启动

消费者中的增删改查的实现

1、创建业务接口

8b0c6bbc0a6cdde9db3b16fcb7b1738b.png

2、实现服务项目中业务层接口,调用服务项目中的业务层方法,去操作数据库。

c6ffbd9a679f85fb77ffefc83f9bea27.png

3、在Controller中调用业务项目中的实现方法

ffe1419a0f5ca1c4c18cb257325fe287.png

4、编写前端页面。

5、配置consumer.xml文件

6759c298162be6392d13f2c92d25527c.png

6、在Linux中启动tomcat,用热部署部署项目。

7、选中要部署的项目,右键Run As。

ad2fbd9eea5031b3d99973379a919b4c.png
Doe 发布 [V1.0.0] 前段时间排查某问题的时候,想要快速知道某些dubbo接口(三无)的响应结果,但不想启动项目(因为这些项目不是你负责的,不会部署而且超级笨重),也不想新建一个dubbo客户端项目(占地方),也不想开telnet客户端连接口(麻烦而且有限制)。所以扣了dubbo的netty模块源码,封装了个收发客户端集成一个工具,可以快速调试dubbo接口。源码地址:https://github.com/VIPJoey/doe 极简模式 普通模式 目录结构 mmc-dubbo-api 接口项目,主要用于测试。 mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发数据。 用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要用来分析接口方法参数,主要作用在普通模式。 依赖列表:通过分析pom文件,展示已经加载的jar包。 其它特性 springboot 整合 redis,支持spring el 表达式。 springboot 整合 thymeleaf。 springboot 整合 logback。 netty rpc 实现原理。 开发环境 jdk 1.8 maven 3.5.3 dubbo 2.6.1 lombok 1.16.20 idea 2018 windows 7 安装步骤 安装jdk 安装maven,并设置好环境变量,仓库目录。 进入mmc-dubbo-api目录,执行mvn clean install命令,省api的jar包。 进入mmc-dubbo-doe目录,执行mvn clean install 命令,在target目录生成dubbo-doe-1.0.0-RELEASE.jar 在F盘(可以任意盘)创建目录F:\app\doe 把dubbo-doe-1.0.0-RELEASE.jar拷贝到F:\app\doe 把deploy目录中的所有文件拷贝到F:\app\doe 如果您电脑安装了git bash,可以在bash窗口运行 ./deploy.sh start,否则如果没有安装git bash,只能打开cmd切换到F:\app\doe目录,然后执行java -jar dubbo-doe-1.0.0-RELEASE.jar --spring.profiles.active=prd 打开浏览器,访问地址:http://localhost:9876/doe/home/index 全剧终
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值