关于启动springboot如果指定多个profile时相同配置的覆盖规律

关于启动springboot如果指定多个profile时相同配置的覆盖规律

背景和实践

本文研究启动springboot项目,如果指定多个profile时相同配置的覆盖规律。

注意:想通配置就是写在不同的profile里的文件具有相同key值的配置。比如在 application-prof1.properties 和 application-prof2.properties 里都有个相同的配置 my.config

结论

  • --spring.profiles.active=prof1,prof2 如果有相同配置按照default,prof1,prof2后面的覆盖前面的

  • 调换一下顺序--spring.profiles.active=prof2,prof1 ,如果有相同配置则按照default,prof2,prof1的顺序后面覆盖前面

没有冲突的配置是三者合在一起的!!

Spring Boot允许你在运行通过命令行或`application.properties`文件动态切换应用使用的配置文件。如果你有多份配置文件,比如`config-dev.properties`, `config-prod.properties`, 和 `config-test.properties`,你可以使用 profiles 功能来管理。 要在POM.xml中设置默认配置并允许用户通过命令行指定配置文件,你需要做以下几步: 1. 添加Spring Cloud Config依赖:如果你打算从外部配置服务器获取配置,可以使用Spring Cloud Config。如果只是本地应用间的配置切换,Spring Boot本身已经足够了。 ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> ``` 2. 创建profile标签:在POM.xml的`<profiles>`部分,添加不环境的配置文件名。 ```xml <profiles> <profile> <id>dev</id> <properties> spring.config.name=dev </properties> </profile> <profile> <id>prod</id> <properties> spring.config.name=prod </properties> </profile> <!-- ... --> </profiles> ``` 3. 在`<build>`标签中,设置`spring-boot-maven-plugin`的`spring.profiles.active`属性,告诉它启动使用哪个profile。 ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <profiles> <activeProfiles>${spring.profiles.active}</activeProfiles> </profiles> </configuration> </plugin> </plugins> </build> ``` 4. 用户可以通过以下命令行启动应用并指定特定的profile: ``` mvn spring-boot:run -Dspring.profiles.active=dev ``` 5. 如果你想在运行更改配置,可以在启动后通过HTTP请求或者系统环境变量的方式动态更新`spring.config.name`。 相关问题: 1. Spring Boot如何在程序运行改变配置? 2. 怎样在命令行启动Spring Boot应用选择配置文件? 3. Spring Cloud Config和Spring Boot本地配置有何区别?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值