1、概述

  为什么要把一个完整的项目(Project)按层拆分成多个模块(Module)?

  1)使项目层次更加的清晰;

  2)提高代码的复用性;

  3)细化分工;

  4)解耦。

  是不是听起来很高大尚,今天就简单的讲一下项目的分层设计与实现。

  这里使用Maven,对项目进行模块拆分与整合。

2、设计

  咱们以传统的MVC项目为例,进行简单的拆分:

  1)common模块:包含一些公共的组件,例如:枚举类和工具类。

  2)model模块:包含实体、DTO、VO等数据模型。

  3)repository模块:包含数据访问类。

  4)service模块:包含业务逻辑类。

  5)controller模块:包含控制类。

  

  以上模块依次依赖,最终聚合成一个单体项目,依赖关系为:

  model 依赖 common

  repository 依赖 model

  service 依赖 repository 

  controller 依赖 service 

  

3、创建项目

  1) 打开IDEA,选择 File —> New —> Project...

JavaWeb单体项目的分层设计与实现_java

   2)选择Maven,SDK,然后 Next

JavaWeb单体项目的分层设计与实现_maven_02

   3)填写项目名称、GroupId、Version,然后点击 Finish,即可创建项目

JavaWeb单体项目的分层设计与实现_maven_03

  4)修改项目的pom.xml文件,修改packaging标签的值为 pom

 JavaWeb单体项目的分层设计与实现_依赖关系_04

 

 

4、创建子模块

   1)在项目上点击鼠标右键,选择 New —> Module...

JavaWeb单体项目的分层设计与实现_依赖关系_05

 

   2)选择Maven,SDK,然后 Next

 JavaWeb单体项目的分层设计与实现_依赖关系_06

 

   3)Parent选择父项目,名称命名为 父项目名称-common ,选择 Finish

JavaWeb单体项目的分层设计与实现_maven_07

 

   4)common模块的pom文件会有父项目的标签

JavaWeb单体项目的分层设计与实现_创建项目_08

 

   5)父项目的pom文件中会有子模块的标签

JavaWeb单体项目的分层设计与实现_java_09

 

   6)同理创建其他模块

JavaWeb单体项目的分层设计与实现_java_10

 

 

5、添加依赖关系

  1)model 依赖 common

JavaWeb单体项目的分层设计与实现_java_11

 

   2)repository 依赖 model

JavaWeb单体项目的分层设计与实现_依赖关系_12

 

  3)service 依赖 repository

JavaWeb单体项目的分层设计与实现_依赖关系_13

 

   4)controller 依赖 service

JavaWeb单体项目的分层设计与实现_复用_14

 

6、父项目增加 springboot web 依赖 

JavaWeb单体项目的分层设计与实现_复用_15

 

 

7、添加简单的代码

JavaWeb单体项目的分层设计与实现_java_16

 

 JavaWeb单体项目的分层设计与实现_maven_17

 

 JavaWeb单体项目的分层设计与实现_依赖关系_18

 

 JavaWeb单体项目的分层设计与实现_依赖关系_19

 

 

8、打包项目

 JavaWeb单体项目的分层设计与实现_java_20

 

 

9、启动项目

JavaWeb单体项目的分层设计与实现_依赖关系_21

 

 

JavaWeb单体项目的分层设计与实现_创建项目_22