Maven 高级: 分模块设计与开发

Maven 是一款构建和管理 Java 项目的工具。但是在实际开发中, 仅凭 Maven 的基础知识就比较难以应对了。 Maven 还提供了一些高级的功能,这些功能在构建和管理 Java 项目的时候用的也是非常多的。

Maven 高级内容包括:

  • 分模块设计与开发
  • 继承与聚合
  • 私服

在这里插入图片描述


介绍

所谓分模块设计,顾名思义指的就是在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。

未分模块设计的问题

如果项目不分模块,也就意味着所有的业务代码都写在这一个 Java 项目当中。随着这个项目的业务扩张,项目当中的业务功能可能会越来越多。

假如开发的是一个大型的电商项目,里面可能就包括了商品模块的功能、搜索模块的功能、购物车模块、订单模块、用户中心等等。这些所有的业务代码我们都在一个 Java 项目当中编写。

此时可以试想一下,这个项目组至少几十号甚至几百号开发人员,这些开发人员全部操作这一个 Java 项目。

此时就会发现我们项目管理和维护起来将会非常的困难。假如在项目当中,自己定义了一些通用的工具类以及通用的组件,而公司还有其他的项目组,其他项目组也想使用所封装的这些组件和工具类,其实是非常不方便的。因为 Java 项目当中包含了当前项目的所有业务代码,所以就造成了这里面所封装的一些组件会难以复用。

总结起来,主要两点问题:不方便项目的维护和管理、项目中的通用组件难以复用。


分模块设计

分模块设计,就可以将一个大的项目拆分成若干个模块,每一个模块都是独立的。

在这里插入图片描述

比如可以将商品的相关功能放在商品模块当中,搜索的相关业务功能都封装在搜索模块当中,还有像购物车模块、订单模块。

而为了组件的复用,也可以将项目当中的实体类、工具类以及定义的通用的组件都单独的抽取到一个模块当中。

如果当前这个模块,比如订单模块需要用到这些实体类以及工具类或者这些通用组件,此时直接在订单模块当中引入工具类的坐标就可以了。这样我们就将一个项目拆分成了若干个模块儿,这就是分模块设计。

分模块儿设计之后,在进行项目管理的时候,就可以几个人一组,几个人来负责订单模块儿,另外几个人来负责购物车模块儿,这样更加便于项目的管理以及项目的后期维护。

而且分模块设计之后,如果需要用到另外一个模块的功能,直接依赖模块就可以了。比如商品模块、搜索模块、购物车订单模块都需要依赖于通用组件当中封装的一些工具类,只需要引入通用组件的坐标就可以了。

分模块设计就是将项目按照功能/结构拆分成若干个子模块,方便项目的管理维护、拓展,也方便模块键的相互调用、资源共享。


实践

明白了什么是分模块设计以及分模块设计的优势之后,接下来就来看一下之前所开发的案例工程。

可以看到在这个项目当中,除了所开发的部门管理以及员工管理、登录认证等相关业务功能以外,我们是不是也定义了一些实体类,也就是pojo包下存放的一些类,像分页结果的封装类PageBean、 统一响应结果Result,还定义了一些通用的工具类,像Jwts、阿里云OSS操作的工具类等等。

如果在当前公司的其他项目组当中,也想使用我们所封装的这些公共的组件,该怎么办?可以思考一下。

  • 方案一:直接依赖我们当前项目 tlias-web-management ,但是存在两大缺点:

    • 这个项目当中包含所有的业务功能代码,而想共享的资源,仅仅是pojo下的实体类,以及 utils 下的工具类。如果全部都依赖进来,项目在启动时将会把所有的类都加载进来,会影响性能
    • 如果直接把这个项目都依赖进来了,那也就意味着所有的业务代码都对外公开了,这个是非常不安全的。
  • 方案二:分模块设计

    • 将 pojo包下的实体类,抽取到一个 maven 模块中 tlias-pojo
    • 将 utils包下的工具类,抽取到一个 maven 模块中 tlias-utils
    • 其他的业务代码,放在 tlias-web-management这个模块中,在该模块中需要用到实体类 pojo、工具类 utils,直接引入对应的依赖即可。

在这里插入图片描述

注意:分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。



总结

1). 什么是分模块设计:将项目按照功能拆分成若干个子模块

2). 为什么要分模块设计:方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享

3). 注意事项:分模块设计需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分





  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值