springboot多模块中的共用配置文件详解

 更新时间:2021年12月01日 08:48:15   作者:猩猩之火  
这篇文章主要介绍了springboot多模块中的共用配置文件详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot多模块的共用配置文件

项目中遇到这样的问题

公共模块comm有些参数是配置文件里配置的,其他的应用依赖comm包,这样一来每个应用都需要配置一个与comm相同的参数才行,否则启动时,报错。找不到配置参数,无法解析的异常:

有没有办法实现这样的需求

公共模块comm,配置了参数,应用A 依赖comm,如果A里配置了相同的参数,则会覆盖comm里设置的 参数,如果A里没设置,那就采用comm里的参数配置?

经过半个小时的测试,答案是肯定的:

1、架构草图如图所示:

2、application.yml:

3、经测试,dev也就是说上层的配置文件要放在后面

他会覆盖前面的相同参数,如果后面的配置文件里没有配置,就采用commdev公共模块的共用参数。

springboot多模块下yml配置文件的加载

如果你的项目有多个模块,比如,几个项目要共用一个数据模块(DataModule),API部分为一个模块(APIModule)。如果要切换不同的环境,需要设置不同的数据库地址,如果数据分布于多个数据源中,手动修改yml中的地址显然不实际而且容易出错,所以需要将不同的数据源放在不同的yml中,在编译时修改一个yml中的配置即可

具体例子如下

APIModule下有application.yml,如果环境不同,本模块的配置也需要有相应的区别,那么可以增加application-development.yml(开发环境)和application-product.yml(生产环境)。

要想加载其中的一个,就需要配置application.yml中的spring.profiles.active为development(配置文件以application-开头)。然而,如果你的DataModule下的yml文件的命名规则与APIModule一样的话,则会发现数据模块配置的东西读不到了。

此时必须将冲突的名称改名,如:将Datamodule的yml文件改为application-datadevelopment.yml和application-dataproduct.yml并在APIModule的application.yml文件中的spring.profiles.active中增加datadevelopment,即可加载这两个模块的dev配置了。

同理,要修改为生产环境,spring.profiles.active则为product,dataproduct。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MyBatis SqlMapConfig.xml配置

    MyBatis SqlMapConfig.xml配置

    MyBatis 的核心配置文件SqlMapConfig.xml,接下来通过本文给大家介绍MyBatis SqlMapConfig.xml配置,非常不错,感兴趣的朋友一起学习吧
    2016-08-08
  • SpringCloud Feign请求头删除修改的操作代码

    SpringCloud Feign请求头删除修改的操作代码

    这篇文章主要介绍了SpringCloud Feign请求头删除修改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Spring Boot 2.7.6整合redis与低版本的区别

    Spring Boot 2.7.6整合redis与低版本的区别

    这篇文章主要介绍了Spring Boot 2.7.6整合redis与低版本的区别,文中补充介绍了SpringBoot各个版本使用Redis之间的区别实例讲解,需要的朋友可以参考下
    2023-02-02
  • Java 数据结构与算法系列精讲之字符串暴力匹配

    Java 数据结构与算法系列精讲之字符串暴力匹配

    字符串暴力匹配算法是指在一个长字符串中暴力寻找是否包含某一子串所谓暴力匹配,就是不使用任何其他算法,将两个字符串中的字符一一进行比对
    2022-02-02
  • Struts2修改上传文件大小限制方法解析

    Struts2修改上传文件大小限制方法解析

    这篇文章主要介绍了Struts2修改上传文件大小限制的相关内容,包括决定Struts2上传文件大小的因素,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • SpringCloud Zuul过滤器和谷歌Gauva实现限流

    SpringCloud Zuul过滤器和谷歌Gauva实现限流

    这篇文章主要介绍了SpringCloud Zuul过滤器和谷歌Gauva实现限流,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Spring boot 启动流程及外部化配置方法

    Spring boot 启动流程及外部化配置方法

    平时我们开发Spring boot 项目的时候,一个SpringBootApplication注解加一个main方法就可以启动服务器运行起来,那它到底是怎么运行起来的呢?这篇文章主要介绍了Spring boot 启动流程及外部化配置,需要的朋友可以参考下
    2022-12-12
  • java中stringbuffer线程安全分析实例详解

    java中stringbuffer线程安全分析实例详解

    在本篇文章里小编给大家整理的是一篇关于java中stringbuffer线程安全分析实例详解内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • Java GZIPOutputStream流压缩文件的操作

    Java GZIPOutputStream流压缩文件的操作

    这篇文章主要介绍了Java GZIPOutputStream流压缩文件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java中关键字synchronized的使用方法详解

    Java中关键字synchronized的使用方法详解

    synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块,下面这篇文章主要给大家介绍了关于Java中synchronized使用的相关资料,需要的朋友可以参考下
    2021-08-08

最新评论