个人理解使用Maven把项目拆分成多个模块的好处:
比如一个项目,有H5和管理员后台,如果打包到一个jar里面,H5和管理员后台只能共用一个域名,而且修改任何地方的代码,这个都要重新部署。
想要避免这一情况,可以把H5和管理员后台拆分成两个独立项目。
但是这样出现了另一个问题:本来一些工具方法和查询订单等共用的功能模块,就得在H5和管理员后台分别创建一份,达不到共用的目的。
所以最优解就是使用Maven分模块开发。
SymonLin/demo
rex:测试可行
扩展阅读:
lxchinesszz/multi-boluome
Spring Boot -05- 多模块结构项目构建与测试(详细图文教程)IDEA 版
SpringBoot+Maven多模块项目(创建、依赖、打包可执行jar包部署测试)完整流程
SpringBoot多模块下yml文件读取问题
如果在多个模块中都有application.yml文件,则会只读取有主启动类中的yml文件,不会读取其他模块中的配置文件,例如:
在controller模块中有一个application.yml文件,在dao模块中有一个application.yml,如果启动controller模块中的主启动类,则只会加载controller模块中的application.yml文件,并不会加载dao模块中的application.yml文件。
解决方案:
第一步:修改其他模块中的yml文件的名字为application-xxx.yml(xxx必须和active的值保持一致)
第二步:在主启动模块中的application.yml中配置如下内容
1 | spring: |
实际操作:
- 将 xinyue-service 的配置文件重命名为:
application-service.yml
- 在 xinyue-admin 的 application.yml 中启用指定配置文件:
spring.profiles.active=service
- 重启后,运行成功
- 如果各个模块还需要做 dev/prod 环境的切换怎么办呢?
- 亲测后,发现
spring.profiles.active
支持使用多配置文件
- 亲测后,发现
- 故可以在 xinyue-admin 中有三个配置文件
- application.yml
- application-dev.yml
- application-prod.yml
- 也可以在 xinyue-service 中创建三个配置文件
- application-service.yml
- application-service-dev.yml
- application-service-prod.yml
- 然后再 application.yml 中根据情况配置,类似如下即可
- spring.profiles.active=dev,service-dev
总结:
实际开发中,还是把所有配置放在同一个程序入口模块里比较好,方便统一管理。