手把手从零搭建微服务项目Spring Cloud Alibaba--02、创建继承父模块的子项目。maven标签<dependencies>与<dependencyManagement>区别与作用

继上一章节已创建好仅用于继承和依赖版本管理的父模块后,开始创建微服务的子项目:【订单服务】与【库存服务】。

1,创建【库存服务】项目。

个人习惯先添加模块,再添加启动类、application.yml改造为springboot项目,这样的优点是:会自动在父模块的pom文件中添加创建的子模块,也会自动在子模块的pom中自动添加父模块的继承,如图:

父pom文件
父pom文件
子项目【库存管理】pom文件

子模块创建完成,且有了父子继承关系。此时库存管理的java路径和resources路径均为空,需要手动添加启动类和application.yml配置文件。添加后项目路径如下:

切记:启动类需要在根目录下,原因是springboot的自动扫描bean,在默认情况下,以启动类所在路径为初始扫描目录。如上图即:StockApplication与controller同级,则在启动库存管理项目时,优先扫描StockApplication,并将其内bean注入spring容器,再扫描同层级的文件及目录下文件,根据注解,将扫描出的bean都注入spring容器。

子项目的pom文件暂时不需要添加任何依赖,因为已经继承了父模块pom声明的<dependencies>里的依赖,如图:

而子项目的application.yml也只需要配置端口和服务名称即可,为后续微服务做准备

至此,【库存服务】简单创建完成,同理创建【订单服务】。

2,父模块<dependencies>标签与<dependencyManagement>标签的区别于作用

<dependencies>是可以直接被子模块继承的依赖,如上例中,父模块的<dependencies>中添加了<artifactId>spring-boot-starter-web</artifactId>的依赖,其所有子模块不需要引入便有了该依赖。使用起来很方便,貌似不再需要其他标签了。但是有一种弊端,有的子模块根本不需要这个依赖,但是也强行被注入了该依赖,此时就诞生了<dependencyManagement>标签。

<dependencyManagement>标签的作用:

1,声明在<dependencyManagement>标签内的依赖,子模块如需使用,需要显示的在子模块pom文件的<dependencies>标签中引入;

2,子模块<dependencies>标签中引入的依赖,如果在父<dependencyManagement>标签中有管理,则子模块引入时不需要指定版本。此为<dependencyManagement>标签最核心用途,微服务中会有很多相同依赖,版本难以控制,均应放在父模块中做版本管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值