上篇是SSM的maven单工程(http://www.cnblogs.com/yuanjava/p/6748956.html)。中篇是 SSM的maven多工程(http://www.cnblogs.com/yuanjava/p/6886099.html)。 此下篇是把 中篇的 service 单独拿出来当做一个服务当做服务提供者,供contoller 的 消费端调用。然后把 service端的服务用dubbo把服务注册到注册中心(zookeeper),消费端订阅取到注册中心的服务地址,根据地址去 服务端找对应的服务调用。
工程代码github地址:https://github.com/liuxiaoshi/liuxs-parent
一.创建工程
中篇我们的工程 是
lxs-parent (父工程 pom)
----------lxs-common (子工程 jar 对应原工程里的utils)
--------- lxs-web-parent (子工程 聚合工程 pom)
----------lxs-pojo (子模块 jar 对应原工程 pojo包)
----------lxs-mapper (子模块 jar 对应原工程 dao包)
----------lxs-service (子模块 jar 对应原工程 service 接口和实现类)
----------lxs-web (子模块 war )
其实也可以把 lxs-web-parent 去掉 把所有的工程聚合到 lxs-parent里。此次就把所有的工程都聚合到 lxs-parent。同时把lxs-service 模块抽出来当做war当做服务提供者。同时因为服务接口消费端也要调用,因为把接口抽出个jar包。
此次工程结构是
liuxs-parent (父工程 pom 聚合工程)
----------liuxs-common (子工程 jar 对应原工程里的utils)
----------liuxs-pojo (子模块 jar 对应原工程 pojo包)
----------liuxs-interface (子模块 jar 对应原工程接口 )
----------lxs-mapper (子模块 jar 对应原工程 dao包)
----------liuxs-provider-web(子模块 war 服务提供 service 包)
----------liuxs-consumer-web (子模块 war 消费端 contoller包)
创建父工程 liuxs-parent
分别创建子模块
创建liuxs-common
创建liuxs-provider-web war包
其他不一一创建了,最后工程目录是这样的
二:修改依赖等
父工程加入 dubbo 和 zookeeper 包,因为dubbo依赖的spring 好像会跟 spring4.3的冲突,因此排除掉
三:把原工程对应的模块和代码移动到多模块工程里
此步骤跟上篇的移动差不多。
liuxs-provider-web 增加dubbo-provider.xml
内容如下:
liuxs-consumer-web 增加dubbo-consumer.xml
内容如下
四:测试结果
安装对应的zookeeper 和dubbo 控制台 (http://www.cnblogs.com/yuanjava/p/6793251.html)
启动服务提供方liuxs-provider-web,在dubbo 控制台看见了 服务器提供方
然后启动 消费端 liuxs-consumer-web ,在dubbo控制台消费者看到对应的消费者
最后运行结果