gpt4 book ai didi

java - spring.profiles.include 来自 spring cloud 配置的属性

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:15 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序。我在 application.yml 中使用 spring.profiles.include 根据给定的配置文件添加一些 Activity 配置文件,然后我使用这些 Activity 配置文件进行 bean 创建,如下所示:

application.yml:

spring:
profiles: prod
profiles.include:
- enable_tls
- enable_mongo_ssl

配置类 - 根据 Activity 配置文件创建 Bean:

@Configuration
@PropertySource("classpath:/mongo-${mongo.environment}.properties")
public class MongoConfiguration {
@Bean
@Profile("enable_mongo_ssl")
public MongoClientOptions.Builder mongoClientOptionsBuilder() {
return getMongoClientOptionsBuilder();
}

这很好用。但是,当我删除 application.yml 并通过 Spring Cloud Config 使用外部配置 - 使用 Git 存储库时,这不起作用。 Activity 配置文件仅是 prod,不包括“enable_tls”和“enable_mongo_ssl”,因此在创建 bean 时,声明:

@Profile("enable_mongo_ssl")

不再正确。

当我查询环境 Controller 时,我可以看到配置文件enable_tls和enable_mongo_ssl:

 "profiles": [
"prod"
],
"label": null,
"version": "2ddd208fff7caa48b2ae41d69020325ce61f241e",
"state": null,
"propertySources": [
{
"name": "file:///C://dev/config-repo/config/application-prod.yml",
"source": {
"spring.profiles.include[0]": "enable_tls",
"spring.profiles.include[1]": "enable_mongo_ssl",
"server.ssl.key-store-password": "ENC(xxx)",
}
}

有限制吗?我们可以在外部配置中使用 spring.profiles.include 而不是在本地 application.yml 文件中吗?

有关信息,我正在使用 Finchley.SR3 版本。

我当前的解决方案是将除 spring.profiles.include 之外的所有属性在 Config Server 中外部化,保留在 application.yml 类路径文件中。

最佳答案

他们不想从服务器实现递归配置文件检索:

https://github.com/spring-cloud/spring-cloud-config/issues?q=is%3Aissue+spring.profiles.include

只需在 bootstrap.yaml 中列出所有功能标志(Spring 配置文件)((

关于java - spring.profiles.include 来自 spring cloud 配置的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com