首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >springboot模块引用开发的小技巧

springboot模块引用开发的小技巧

作者头像
用户11690639
发布2026-06-17 21:56:53
发布2026-06-17 21:56:53
610
举报

多模块开发的项目中,通常会把公共的部分提取出来,例如A、B模块引用了C模块,C模块中有一些配制信息。那A、B模块在启动时是否会加载C的配置信息呢?什么时机触发的配制文件的加载呢?实际验证了一下,先说配制文件加载的时机,是在springboot 的启动类Application调用run方法时触发的;那A模块在pom中引用了C模块 ,但并不会让C模块自动运行其启动类,因此C的配置文件是不会被加载进来的。在A模块启动时也会报错,因此,大家为了解决这个不动脑的方法就是直接在A中加上相应的配置。B中也需要加上C中相应在的配置。这样写很麻烦。如下详细说明

模块引用示例

在这里插入图片描述
在这里插入图片描述

如上图所示collect和interface两个模块都会用到cache模块中的jetcache 。collect 和interface要怎么做呢?

A、B模块Pom中加入C的引用

代码语言:javascript
复制
 <dependency>
            <groupId>com.test.management</groupId>
            <artifactId>cache</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
</dependency>

A、B模块启动类中加入对C包下引用类的扫描

因为springboot 在加载类时,会扫描和启动类同级目录下所有的包,如果需要通过注解引用C模块下的类,需要在启动类中增加 扫描包路径如下图所示:

引用模块A和B的配置文件说明

A和B想引用C模块的配置,需要在配置文件中增加引用说明,如下所示:

代码语言:javascript
复制
spring:
  profiles:
    include: cache #cache为C模块配置文件的后缀

被引用模块C模块的配制文件说明

被引用模块C的配置文件唯一说明的是需要和引用模块:A模块、B模块的配制文件名前缀一样。eg,A模块的配置文件为application.yml,那个被引用模块配置文件为application-c.yml。只要保证都是application开头即可,-c与上一步中A模块配置文件中引用的名称一致。如下所示:

在这里插入图片描述
在这里插入图片描述

启动脚本指定多个配置文件

布到生产环境上去,需要指定外部配置文件,便 于修改。如果指定多个呢。下面这样即可

代码语言:javascript
复制
APP=interface.jar
# 关闭应用
kill -9 $(ps -ef | grep $APP | grep -v grep | awk '{ print $2 }')
nohup java -jar  $APP --spring.config.location=file:application.yml,file:application-cache.yml >info.log>&1& 
tail -f info.log
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模块引用示例
  • A、B模块Pom中加入C的引用
  • A、B模块启动类中加入对C包下引用类的扫描
  • 引用模块A和B的配置文件说明
  • 被引用模块C模块的配制文件说明
  • 启动脚本指定多个配置文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档