springboot模块引用开发的小技巧

多模块开发的项目中,通常会把公共的部分提取出来,例如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的引用

 <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模块的配置,需要在配置文件中增加引用说明,如下所示:

spring:
  profiles:
    include: cache #cache为C模块配置文件的后缀

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

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

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

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

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
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值