maven多模块项目搭建
最近呢学校校企合作培训,老师给我们出了一道题让做一个秒杀系统。要求前后端分离,要有独立的商品服务
,独立的库存服务
,独立的交易服务
。经过团队的协商我们决定使用maven多模块,来将这些服务进行整合,到最后统一一键暴露接口服务
,而不用再一个个启动服务了。
1.新建maven项目
2.选择项目存放的路径后,选择创建一个简单的maven项目
3.填写Group Id和Artifact Id,也可以自定义版本号
4.项目的目录结构很简单
5.这里我们要看一下pom.xml,这里Packaging需要改为pom
接下来我们构建里面的子模块(seckill_interface)
1.在已经建成的项目上右键新建project此时选择创建Maven Module
2.此时项目类型选择为maven-archetype-quickstart
3.建成之后的项目结构为
接下创建提供服务的模块儿(user_backService,business_backService,commodity_backService,stock_backService)
这四个独立的服务项目构建过程与seckill_interface构建过程一样
最终结构如下图
为了使这些服务能跑起来需要我们去创建一个如下类型的maven子项目(web)
然后填写Group Id和Artifact Id,也可以自定义版本号
到现在为止,整个项目的架子是搭好了。(搭建webApp类型的maven子项目其实是依赖前面的接口的4个服务的。)
最终open_backService是被打成war包进行发布的,其他的依赖都会被打成jar被Open_backService引用。
接下来我们配置相关接口服务整个项目结构如下图
最主要的在于包【top.softzztiedu.service】中。
我们将服务写成接口通过Dubbo进行服务治理
我们的服务如何暴露呢,当然是在open_backService中了(见下图)
【1】配置remote-provider.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="top.softzztiedu.service.UserService" ref="UserService" timeout="100000"/>
<dubbo:service interface="top.softzztiedu.service.BusinessService" ref="BusinessService" timeout="100000"/>
<dubbo:service interface="top.softzztiedu.service.CommodityService" ref="CommodityService" timeout="100000"/>
<dubbo:service interface="top.softzztiedu.service.StockService" ref="StockService" timeout="100000"/>
<!-- 和本地bean一样实现服务 -->
<bean id="UserService" class="top.softzztiedu.service.impl.UserServiceImpl"/>
<bean id="BusinessService" class="top.softzztiedu.service.impl.BusinessServiceImpl"/>
<bean id="CommodityService" class="top.softzztiedu.service.impl.CommodityServiceImpl"/>
<bean id="StockService" class="top.softzztiedu.service.impl.StockServiceImpl"/>
</beans>
【2】配置spring-dubbo.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--关闭所有服务的启动时检查:(没有提供者时报错)-->
<dubbo:consumer check="false" />
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="seckill_backService"/>
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" client="zkclient"/>
<!-- 用dubbo协议在20881端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20881" />
</beans>
注:详情查看源码与环境部署文档
https://github.com/iamsongci/seckill_backService/
作者: 宋鎏鑫
链接:https://www.imooc.com/article/18212
来源:慕课网