关于SpringBoot项目配置文件放在jar外面总结

针对小项目,非分布式没有统计配置中心,开发时候会面临打包配置不同的环境,例如我遇到的项目,在公司有测试环境,稳定环境,现场有现场测试,现场稳定环境,针对不同环境需要不同的配置。

这时候可考虑把配置抽离出来,对每个环境放对应的配置文件,且直接放在jar包外面即可。详细说明如下:

SpringBoot项目在运行时默认的配置文件application.properties是可以直接放在jar包外面的,且读取优先级如下:

config/application.properties  >  application.properties > classpath:application.properties

所以你的项目可以这样配置

spring:
  profiles:
    active: dev

然后再把application-dev.yml也放在外面且与application.yml同级。

但如上的配置之能针对住配置文件,如果有其他的配置文件怎么办呢?如下:

@Component
@ConfigurationProperties(prefix="ftp")
@PropertySource(value = {"classpath:ftp.properties","file:config/ftp.properties"},ignoreResourceNotFound =true)
@Data
public class FtpConfig {
    private String Host;
    private int Port;
    private String UserName;
    private String PassWord;
}

其最重要的是@PropertySource注解的配置,上面的ConfigProperties 属性源有两个:
“classpath:config.properties"和"file:config/config.properties”

这两个属性分别表示类路径下的配置文件和jar包外部的config文件夹下的配置文件。这里将"file:config/ftp.properties"放在后面,代表优先使用jar包外部config文件夹下的配置文件,如果没有,就使用类路径下的。在这样使用时,需要添加ignoreResourceNotFound =true 配置,避免第二个路径找不到的情况下spring boot启动时报错(找不到文件)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值