微服务实战01-maven聚合工程
创始人
2024-06-03 09:22:17
0

接下来的一段时间,我们将要来学习微服务,本着重实战的原则,你不需要去深究一些相关的原理,只要能跟着教程一步一步做下来,就可以快速地掌握Java微服务开发技巧。

我们学习微服务的第一步,就是要知道怎么创建聚合工程,虽然说微服务和聚合工程没有直接和必然的联系,但是现在工作中只要用到微服务,就一定是聚合工程。既然绕不开,我们就从聚合工程开始吧。

聚合的意义

对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的拆分。

横向拆分

所谓的横向的拆分就是我们平常说的三层架构,将每个功能模块分成三层去开发 即web层(表现层),service层(业务逻辑层)、dao层(数据访问层、持久层), 可以理解为将一个功能模块的不同调用过程(三层的调用)进行了水平方向的拆分。

纵向拆分

所谓的纵向拆分就是将一个项目根据多个功能模块进行拆分,可以理解为,为了完成一个系统,深度(纵向)分析需要有哪些功能,然后将这些功能独立出来(独立为模块),进行了(纵向)拆分。

横向和纵向拆分后,对每层架构和功能模块进行单独的开发,项目整合的时候就需要有一个能够整合这些架构或者模块的工程,这就是所谓聚合工程的意义。

创建聚合工程的要点(重点理解):

该聚合项目(父级项目、顶级项目)本身也是一个maven项目,它必须有自己的pom

它的打包方式必须是:pom

引入新的元素:modules—module(模块:每个模块其实也是一个项目)

版本:聚合模块的版本要和被聚合模块的版本一致

relative path:每个module名称都是一个当前pom的相对目录

目录名称:为了方便快速定位,模块所处的目录应当与其artifactId一致(maven约定而不是硬性要求),总之,模块所处的目录必须要和聚合模块中的模块目录保持一致。

聚合模块减少的内容:聚合模块的内容仅仅是一个pom.xml文件,它不包含src/main/java和src/test/java等目录,因为他只是用来将其他模块整合构建成一个整体的工具,本身并没有实质的内容。

聚合模块和子模块的目录:它们可以是父子级,也可以是平行结构(推荐)。

默认是父子级结构,但是不建议使用,因为父子级是一种嵌套关系,子模块要建在父模块里面,维护起来很容易紊乱;推荐使用平行结构,是因为维护起来一目了然,条理比较清晰,当然同时要在pom文件的中修改相应的目录路径配置。

如果聚合模块对某一个子模块进行了删除操作,那么一定要在聚合模块的pom.xml文件中的modules选项中将对应的子模块删除掉。

快速入门

首先,我们创建一个父项目:

选择简单项目

打包方式是pom,不要选错了

pom.xml增加hutool的依赖,后面有用。

4.0.0com.javaxbfsparent0.0.1-SNAPSHOTpom父项目父项目cn.hutoolhutool-all4.3.1

最后再更新一下maven一下依赖

接下来是重头戏,我们要创建子项目,也叫做模块

首先右键点击 父项目, 然后点击 New -> Other -> Maven -Maven Module -> Next

和父项目一样,这里也勾选 Craete a simple project,然后点 Next

点Finish

目录结构变成了这样

在子项目里面创建一个测试类

测试代码

package com.child.test;import cn.hutool.core.date.DateUtil;public class TestChild {public static void main(String[] args) {System.out.println(DateUtil.now());}}

效果:

可以看到,子项目虽然没有引入Hutool却可以继承父项目的Hutool,说明父子工程创建成功了!

子项目的pom.xml多了一个父项目依赖

com.javaxbfsparent0.0.1-SNAPSHOT

父项目的pom.xml多了一个module

  child-one

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...