Springboot模块化环境搭建

276 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

今天我们看下搭建一个springboot的模块化环境,先说下业务场景,在我们进行项目部署的时候,如果就一个环境我们可能不用考虑这么多,直接一套pom就完成了所有的操作,但是如果我们需要将项目部署在阿里、腾讯、华为这些云环境上该怎么办?阿里系的确做的很兼容,但如果是华为的呢?你需要有专门的解决包问题的流程,如果我们不分多个环境的模块的话指望着记录pom文件,恐怕随着业务的增加会心有余而力不足吧,而且每次开发、测试、生产各个环境你都要手动或者执行脚本修改;

可是如果我们将需要的所有业务代码写在一个模块里,然后新增几个环境模块,在环境模块里引入业务模块就可以很好解决这个问题了,每次要啥直接maven打包即可,不需要每次为pom而绞尽脑汁,

首先我们要建一个主项目模块,然后删除里面的src,在这里面建几个我们的工具模块、通用模块common,实体类模块dto、中间件模块es-redis(可放入其他模块中);业务模块svc、启动模块svc-gen(这两个模块用一个模块将它两包裹着)建完后的主体是这样的

这里注意,一切模块都按idea设置的来,不要改动,导致模块没在主模块中显示,导致后续要手动加入;最后主模块pom是这么的

<modules>   
 <module>springboot-xxx-es</module> 
   <module>springboot-xxx-dto</module> 
   <module>springboot-xxx-common</module>  
  <module>springboot-xxx-redis</module> 
   <module>springboot-xxx-svc-main</module>
</modules>

添加完以后我们还需要在最外层pom里加上我们所有的非svc-main的模块,svc-main之所以不加是因为我们的启动环境是在svc-main里,会在启动模块加上我们的svc依赖,最外层加上这些模块要记住,不然我们的controller是无法被加载的,咱们拿一个出来举例

<dependency>    
<groupId>com.xxx</groupId>    
<artifactId>springboot-xxx-es</artifactId>    
<version>${spring-boot-xxx.version}</version>
</dependency>

最后环境模块写上我们的启动类,并开启扫描包

@SpringBootApplication(scanBasePackages = {"com.xxx"})

在svc业务模块写上我们的业务逻辑接口测试一下

@RestController
@RequestMapping("/api/test1")
public class TestDemo {    
@GetMapping("/test")    
public void test(){        
System.out.println("123");    
}
}

调通后表示模块化环境我们是搭建成功的了,如果调接口报404,一定要看模块有没有引入在最外层pom;后面我们会一点一点往上加东西,下一讲我们就往上堆数据库吧,代码我会在大概redis弄好的时候放上去,很快的;好啦🥗🥗🥗;

结束结束,那就🛴🛴🛴