第二十二章:SpringBoot项目多模块运用与设计

在企业级的项目开发中,系统过于庞大时对应的开发人员的数量也会陆续的增加,正因为如此也会给开发人员业务逻辑之间对接增加一些不必要的困难,如果是开发人员过多时,项目提交代码以及逻辑交互起来依然会出现很多问题,并且如果多个项目公用同一个功能那么分离起来也比较麻烦。针对这个情况我们可以采用多种的形式来处理,如:功能模块单独项目开发,功能模块分组,Maven项目Module形式。我们接下来就详细的讲解下有关Maven的Module的模式。

本章目标

基于SpringBoot项目设计Maven管理的多模块项目,并且便宜模块对应生成Jar文件用于系统。

构建项目

我们采用IntelliJ IDEA工具来创建一个Maven项目,项目的pom.xml要添加对应SpringBoot的配置,因为Maven多模块项目内的模块并不能独立的存在,必须有一个介质来包含,项目结构如下图1所示:

图1

可以看到我们创建的Maven项目结构如上图1所示,pom.xml内我们对应的添加了对SpringBoot的支持,因为我们需要使用SpringBoot来作为项目基本框架,并在pom.xml配置文件引入了Web模块的支持,所以介质项目内的Module都会用于Web依赖。

我们在介质Maven项目内创建三个Module,分别为:bean(所有实体类Module)、user(用户逻辑Module)、pager(页面Module)。

创建实体Module(bean)

创建Module的方式与创建项目有点出入,我们点击项目名称后右键->New->Module->Maven,界面如下图2所示:

图2

我在ArtifactId栏目填写了bean,证明这个项目是Chapter22组内的一个子项目,点击Next后创建Module即可,Module创建完成后的展现形式如下图3所示:

图3

我们可以看到之前创建的介质Maven项目还存在src目录,这个我们删掉就可以了,对于我们本章项目来说没有存在的意义。可以看到我们创建的模块的pom.xml配置文件内对应添加了parent节点项目是我们的介质项目,这也是Maven模块项目的好处,我们可以把共同引入的内容在介质项目的pom.xml配置文件内都引入,那么子项目也就会有相对应的依赖。下面我们在bean模块项目内添加一个用户的实体,如下图4所示:

图4

我们的实体创建完成后,bean项目就可以先放一放。

创建用户Module(user)

接下来我们再来编写user项目模块,流程还是一样,我们来创建一个user的Module,项目结构如下图5所示:

图5

我们user模块项目内需要使用bean模块项目内创建的用户实体,我们就可以在user模块项目内的pom.xml配置文件内添加对应的引入,如下图6所示:

图6

下面我们来测试user模块项目添加了依赖后是否可以使用UserBean实体,我们在user模块项目内添加一个UserController并添加一些逻辑处理,如下图7所示:

图7

上图7内我们添加了一个index方法,当我们在浏览器访问/user/index地址时并且将传入的UserBean内的name属性值传入到user_index.jsp页面内,既然UserBean可以在user模块项目中使用,也就证明了我们的引入是没有问题的。

创建页面模块(pager)

我们在user模块内配置了跳转user_index.jsp页面,所以我们需要对应添加一个专门存放页面的模块,创建web模块项目需要注意我们不选择Maven项目创建,而是选择SpringBoot项目类型创建,如下图8所示:

图8

创建完成后项目结构如下图9所示:

图9

可以看到我们创建pager模块的maven配置文件pom.xml内对应parent节点的内容并不是我们chapter22项目,并且我们chapter22配置文件对应的内容都已经配置,这里不用重复引用,所以我们这里需要手动修改下,改动后内容如下图10所示:

图10

我们pager模块项目只需要引入user模块项目即可,如果你需要bean模块项目引入也一并添加dependency节点配置即可。

创建JSP文件

在创建user_index.jsp之前我们需要在application.properties配置文件内添加对应的路径配置,如下图11所示:

图11

根据上面的配置所示我们创建的user_index.jsp的所处位置为:/webapp/WEB-INF/jsp/user_index.jsp,创建user_index.jsp文件内容如下图12所示:

图12

到目前为止我们的项目代码已经编写完成,下面我们来使用外部Tomcat的形式运行SpringBoot项目,我们需要添加项目对本地Tomcat服务器的支持。

配置本地Tomcat服务器

点击Run->Edit Configurations->"+"->Tomcat Server->Local,界面如下图13所示:

图13

下面我们需要配置本地Tomcat的目录为止,如下图14所示:

图14

目录配置完成后,需要将pager项目添加到Tomcat内,如下图15所示:

图14

配置完成后点击Apply即可完成本地tomcat的配置,直接运行Tomcat就可以了。

运行测试

工具右上角选择tomcat8服务器,点击运行按钮后查看控制台输出的日志,如果没有异常恭喜你已经成功的启动了多模块项目,我们打开浏览器输入网址:http://127.0.0.1:8080/user/index?name=admin,界面输出内容如下图15所示:

图15

可以看到我们成功的输出了内容,看着比较简单的一句话的输出,我们使用了三个项目模块来完成,正因为如此我们的模块化项目才能最大化的被引用并且使用。

总结

以上内容就是本章的全部讲解内容,本章主要讲解了SpringBoot项目架构下我们如何配置Maven多模块项目并且部署运行测试,下一章我会讲解我们如果打包运行War项目文件。

本章代码已经上传到码云,

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

SpringBoot相关系列文章请访问:目录:SpringBoot学习目录

QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录

SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录

SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏嵌入式程序猿

那些一看就懂的MQX实时操作系统进阶培训

看过了MQX嵌入式系统入门培训,你是否想进阶培训呢,今天我们就来看看那些常用的功能进阶培训 工程建立 参照上节课的内容和MQX例程源码目录结构,可以新建我们自己...

3237
来自专栏小夜博客

LNMP 1.x版本 pathinfo设置

3498
来自专栏SpringBoot 核心技术

Linux杂谈:Mac/Linux下配置远程Linux服务器免密登录

你还在为你每次打开测试环境、生产环境需要登录而犯愁吗? 登录是必须的,但密码是可或缺的!!!

443
来自专栏哎_小羊

windows上 nginx 配置代理服务,配置多域名,以及最简单实现跨域配置

Nginx,不用多说啦,大家都熟悉的不能再熟悉了,它是一款轻量级的高性能Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,最近在本地研究...

2669
来自专栏PHP技术

Docker 微服务教程

Docker 是一个容器工具,提供虚拟环境。很多人认为,它改变了我们对软件的认识。 站在 Docker 的角度,软件就是容器的组合:业务逻辑容器、数据库容器、储...

2886
来自专栏漏斗社区

工具 | w3af系列高级篇(三)

本期带来w3af的高级使用,包括认证扫描,页面爬取和漏洞利用等几个部分。 一、认证扫描 w3af支持如下4种认证类型: HTTP Basic authen...

4558
来自专栏杂七杂八

使用pymc3遇到的问题

PyMC3机器学习库,基于heano, NumPy, SciPy, Pandas, 和 Matplotlib。 安装 pip install pymc3,pi...

2894
来自专栏州的先生

快速掌握Python Selenium Web自动化:搭建Selenium环境

1423
来自专栏别先生

JAVA开发工具eclipse中@author怎么改

1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息。 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 ...

1895
来自专栏深度学习之tensorflow实战篇

下载和安装R、RStudio !~~~

现如今,R语言是统计领域广泛使用的工具,是属于GNU系统的一个自由、免费、源代码开放的软件,是用于统计计算和统计绘图的优秀工具。而RStudio是R的集成开发环...

3185

扫码关注云+社区