springboot多模块中的共⽤配置⽂件详解
⽬录
spring怎么读多个文件springboot多模块的共⽤配置⽂件
项⽬中遇到这样的问题
有没有办法实现这样的需求
springboot多模块下yml配置⽂件的加载
具体例⼦如下
springboot多模块的共⽤配置⽂件
项⽬中遇到这样的问题
公共模块comm有些参数是配置⽂件⾥配置的,其他的应⽤依赖comm包,这样⼀来每个应⽤都需要配置⼀个与comm相同的参数才⾏,否则启动时,报错。不到配置参数,⽆法解析的异常:
有没有办法实现这样的需求
公共模块comm,配置了参数,应⽤A 依赖comm,如果A⾥配置了相同的参数,则会覆盖comm⾥设置的参数,如果A⾥没设置,那就采⽤comm⾥的参数配置?
经过半个⼩时的测试,答案是肯定的:
1、架构草图如图所⽰:
2、l:
3、经测试,dev也就是说上层的配置⽂件要放在后⾯
他会覆盖前⾯的相同参数,如果后⾯的配置⽂件⾥没有配置,就采⽤commdev公共模块的共⽤参数。
springboot多模块下yml配置⽂件的加载
如果你的项⽬有多个模块,⽐如,⼏个项⽬要共⽤⼀个数据模块(DataModule),API部分为⼀个模块(APIModule)。如果要切换不同的环境,需要设置不同的数据库地址,如果数据分布于多个数据源中,⼿动修改yml中的地址显然不实际⽽且容易出错,所以需要将不同的数据源放在不同的yml中,在编译时修改⼀个yml中的配置即可
具体例⼦如下
APIModule下有l,如果环境不同,本模块的配置也需要有相应的区别,那么可以增加l(开发环境)和l(⽣产环境)。
要想加载其中的⼀个,就需要配置l中的spring.profiles.active为development(配置⽂件以application-开头)。然⽽,如果你的DataModule下的yml⽂件的命名规则与APIModule⼀样的话,则会发现数据模块配置的东西读不到了。
此时必须将冲突的名称改名,如:将Datamodule的yml⽂件改为l和l并在APIModule的l⽂件中的spring.profiles.active中增加datadevelopment,即可加载这两个模块的dev配置了。
同理,要修改为⽣产环境,spring.profiles.active则为product,dataproduct。以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论