springboot 构建多模块项目

记录下spring boot 多模块项目的设置过程;首先简单说下为啥需要多模块,一个模块分目录行不行,当然可以,但是这样会导致多个团队开发的时候混乱,会有很多冲突;如果根据领域设计将项目按照不同的领域进行划分,后续维护起来会方便很多;对于以后如果进行微服务的拆分也是很方便的,直接将对应的模块迁移成一个单独的服务即可;还有针对业务初期,可以考虑一个大的项目,不同的功能,比如商城,下单,支付分别建立不同的模块,后期如果业务发展迅速,直接拆分成对应的模块为微服务项目即可;

接下来会用一个简单的项目演示,将springboot的web层,service层,dao层拆分成不同的模块;通过一个简单的crud来测试下;

项目目录结构

1.首先最外层是pom.xml;最外层的pom,作为项目的root pom,文件如下

4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.4 com.example demo-multiple 0.0.1-SNAPSHOT pom

我们一般定义整个项目的依赖,比如spring-boot-starter-parent;这里同时指定了整个项目有三个模块,分别是web,service,dao;

同时在dependencyManagement中设置了项目的依赖的版本管理;也就是下面的子模块以来的版本不需要指定版本了,比如web依赖了service这个模块,不需要设置版本,版本统一在这里进行管理;

2.web 模块

pom文件

4.0.0 com.example demo-multiple 0.0.1-SNAPSHOT com.example demo-web ${project.version} Demo project for Spring Boot

每个子模块会设置parent的信息,同时自己的版本也从根pom中变量获取,同时以来的demo-servce我们看到是没有设置版本的;

web中的项目启动类如下

同时,我们在web中写了一个controller,请求如下

这个地方的TestService是demo-service这个module中的;

同时资源文件设置了数据库的连接信息

data.txt是数据库的初始化脚本,这里我们用的h2的数据库

3.service模块

pom中以来了dao模块

同时我们简单写一个查询方法,这个查询方法以来与dao模块

4.dao模块

dao模块对数据库进行操作,我们使用jpa,依赖如下所示

同时写一个简单的查询

对应的数据库实体如下所示

之后我们运行项目,启动之后,访问这个地址

http://localhost:8086/test1

会将数据库的用户信息打印出来,结果如下

[XwjUser{id=11, name=‘张三’, age=12, createDate=2020-04-17 00:00:00.0}, XwjUser{id=12, name=‘李四’, age=13, createDate=2020-04-17 00:00:00.0}, XwjUser{id=13, name=‘王五’, age=25, createDate=2020-04-17 00:00:00.0}, XwjUser{id=14, name=‘赵六’, age=17, createDate=2020-04-17 00:00:00.0}, XwjUser{id=15, name=‘吉米’, age=30, createDate=2020-04-17 00:00:00.0}]

总结:在跟pom中定义springboot-start作为整个项目的parent,然后配置整个项目的module信息;

同时在dependence-manage定义依赖版本管理,这样子项目中不用指定版本,只引入依赖;好处是多个子项目共同依赖版本发生变化时,只修改跟pom中设置的版本变量即可;同时各个子模块的package最好相同,这样在启动类中,设置一个扫描即可;

@SpringBootApplication(scanBasePackages = {“com.example.multiple”})

整个项目的资源文件放在web目录下;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值