前言
通常java代码的由于不同的模块,将履行不同的职责,我们需要把不同的模块拆分成更小的单元,更小的单元去完成不同的使命。
我们需要对项目进行重构,比如项目既包括依赖管理,也包括业务代码
重构
- 调整主工程类型packaging,把他构造成管理子模块,而不是管理代码;
- 子模块再履行代码模块,创建子模块工程(module)
- 模型层:model(用于管理模型对象)
- 持久层:persistence(管理模型的存储与获取)
- 表示层:web(可以是RESTful api接口,也可以是展示给用的web页面)
- 调整子模块之间的依赖关系/子模块依赖管理(dependencyManagement)
特别说明:
- 代码是以Spring Boot 第一个项目-helloWorld为基础
- 把原来的项目重构为多个模块,单一的模块变成为3个模块:(企业中常用的分层或分模块的方式,主要是利用maven的模块化技术,无论是spring boot 或非spring boot都可以采用这个技术)
- 模型层:model(用于管理模型对象)
- 持久层:persistence(管理模型的存储与获取)
- 表示层:web(可以是RESTful api接口,也可以是展示给用的web页面)
第一步:修改工程中的pom.xml
<!--修改jar为pom
模型层:model
持久层:persistence
表示层:web
web依赖与persistence,persistence依赖于model
web UserController->UserRepository -> User
-->
<packaging>pom</packaging>
image.png
第2步:创建子module 模块名为web (new/module)
new/modue ArtifactId设置为web image.png第3步-拖动原主项目的代码到子项目的java
拖动原主项目的代码到子项目的java并选择所有
选择所有
第4步把主项目的resource目录下的内容全部拖动到子module的resource目录
image.png第5步:删除主项目的src目录
删除主项目的src目录第6步:重新运行,并测试(应该正常--说明重构第一步正常)
重新运行正常ok第7步:创建子module 模块名为persistence 和model ,这2个模块存在相互依赖
第8步:在persistence 中创建一个包名
把持久层repository构建到persistence module
在这个persistence 的module中创建com.younghare.springBoothelloworld.repository目录
把repository下的代码拖动到子module的对应目录此时还没有处理相互依赖关系,idea也会提示你,我们先继续下去,后面我们再来设置依赖
image.png
此时User在persistence模块中会找不到,因为我们还没有设置依赖关系。
还没设置依赖的情况--
第9步:创建新的module,模块名为model
在这个model 的module中创建com.younghare.springBoothelloworld.domain目录
image.png
第10步:在persistence模块的pom.xml文件中添加对model 模块的依赖(参数在model的pom.xml文件中)
依赖的参数 <!--添加对model的依赖-->
<dependencies>
<dependency>
<groupId>com.younghare</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
第10步:在web模块的pom.xml文件中添加对persistence 模块的依赖(参数在persistence的pom.xml文件中)
添加对persistence的依赖 <dependencies>
<!--web 依赖persistence-->
<!--persistence依赖model-->
<!-- 增加对persistence的依赖-->
<dependency>
<groupId>com.younghare</groupId>
<artifactId>persistence</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
第11步:构建项目
构建
第12步:运行
运行第13步:测试
测试重构后的代码
网友评论