springboot多环境配置文件,如何包含多个yml配置文件?看这一篇就够了

本文介绍了SpringBoot如何处理多环境配置,包括配置文件命名规则、激活环境的方式、配置文件的引用及优先级。通过案例展示了如何在不同环境下加载配置,以及如何从application.yml中获取变量,还详细讲解了@ConfigurationProperties的使用,包括属性绑定、默认值设定以及激活方式。
摘要由CSDN通过智能技术生成

在开发springboot项目时,通常一套程序会被应用和安装到几个不同的环境,比如:开发,测试,生产等。其中每个环境的数据库地址,服务器端口等等配置都会不同。如果为不同的环境打包的时候都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事情。

对于多环境配置,通过配置多份不同环境的配置文件,在通过打包启动命令进行区分会更灵活,方便。
解决
1.在spring中多环境配置文件名需要满足application-{profile}.properties的格式

其中{profile}对应的是环境标识,比如:

application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境

在这里插入图片描述

至于哪个具体环境的配置文件被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应${profile}值。

如:spring.profiles.active = test 就会加载application-test.properties配置文件内容。

2.如果不想在项目中写死环境配置,也可以在打包或者运行的时候传入环境参数来确定。

**如:java -jar  ${
   jar_name} --spring.profiles.active=test**

再比如多环境:

启动命令为

//开发环境

java -jar app.jar --spring.profiles.active=dev--server.port=8060

//测试环境

java -jar app.jar --spring.profiles.active=qa --server.port=8060

//生产环境

java -jar app.jar --spring.profiles.active=prod --server.port=8060

可以再结合日志配置:

spring:
  profiles:
    #指定读取配置文件:dev(开发环境),prod(生产环境),qa(测试环境)
    active: qa

#日志
logging:
  config: classpath:logback-${
   spring
  • 34
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在 Spring Boot 中,你可以通过使用 `@PropertySource` 注解来引入多个 YAML 配置文件,并将它们的属性值加载到应用程序中。 首先,在你的 Spring Boot 应用程序的主类上,添加 `@PropertySource` 注解,并指定要引入的配置文件路径。如下所示: ```java @SpringBootApplication @PropertySources({ @PropertySource("classpath:config1.yml"), @PropertySource("classpath:config2.yml") }) public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` 在上面的示例中,我们使用了 `@PropertySources` 注解来指定多个配置文件的路径,每个配置文件都通过 `@PropertySource` 注解来指定。你可以根据需要添加更多的 `@PropertySource` 注解来引入更多的配置文件。 然后,在你的配置文件中,可以使用 `@ConfigurationProperties` 注解来绑定配置文件中的属性值到对应的 Java 对象中。如下所示: ```java @Configuration @ConfigurationProperties(prefix = "your.prefix") public class YourConfiguration { private String property1; private String property2; // ... // getter and setter methods } ``` 在上面的示例中,我们使用了 `@ConfigurationProperties` 注解来将配置文件中以 `your.prefix` 为前缀的属性值绑定到对应的 Java 对象中。其中,`your.prefix.property1` 对应于配置文件中的属性名。 通过这种方式,你可以在 Spring Boot 应用程序中引入多个 YAML 配置文件,并将它们的属性值加载到应用程序中使用。请确保你的 YAML 配置文件的格式正确,并且在类路径下可访问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值