随着本地仓库越来越完善,从file-maven-repositorys-本地仓库进行update,更新本地仓库索引.以便在pom文件中添加依赖项,输入artifactId能够进行提示.
1.工程继承
一个project父工程下,创建N个子module模块,子模块会继承父工程的依赖.
①.创建java工程,打包方式修改为pom,删除src文件夹.
(pom打包方式表示当前工程只有一个pom文件)
(如果一个工程下只有一个pom.xml文件,工程的打包方式改为pom,这就是父工程)
pom文件中加了依赖项和依赖项管理:
<!--依赖项,会被子module直接继承依赖--> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <!--父工程统一管理依赖项的版本,子module引入对应依赖时,不需要指定版本--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.15</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.15</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.15</version> </dependency> </dependencies> </dependencyManagement>
依赖项和依赖项管理的区别:
dependencyManagement中的三个项并没有被项目所依赖。它的作用:定义依赖,并指定版本,子module引入对应依赖时,不需要指定版本。达到多个子module间依赖项的统一。
②.点击父工程项目名,创建子module
子module的GroupId和version不用指定。
直接继承了父工程的两个依赖。
子module把dependencies的依赖项直接继承; 子module如果引入dependencyManagement的依赖项,需要手工引入依赖,但不用指定版本号.
2.聚合工程概念
把之前的单体的项目,拆分成为一个个module模块,多模块之间聚合来构建一个完整的工程.
工程拆分:分为横向拆分与纵向拆分
横向拆分:按照系统功能模块进行拆分,以电商为例:付款子系统,下单子系统,商品管理子系统,客户管理子系统.商品检索子系统.
横向拆分的目的:为了各子系统之间的解耦,互不影响.某个子系统进行升级维护,其他系统不受影响,用户能够继续访问门户系统.
微服务架构:springCloud框架来做的事情.
一般互联网应用上使用.
纵向拆分:按照mvc-dao架构划分来拆分,控制层作为一个子module,service作为一个子module,dao层一个子module,entity一个子module.
纵向拆分的目的:为了