gpt4 book ai didi

java - 从 spring-boot 环境获取属性映射

转载 作者:行者123 更新时间:2023-11-29 04:43:34 25 4
gpt4 key购买 nike

我有这样一个问题:我的应用程序与其他应用程序集一起工作。他们每个人都有一些独特的属性 - templateProject-id。所以,application.properties看起来像

mine.application.basic-project-id.application_1=10200
mine.application.basic-project-id.application_2=10202
mine.application.basic-project-id.application_3=10001

我不想在我的服务类中存储环境对象。只有Map<String, Long>对于对(application_name,project_id)所以,从那个例子应该包含对 ("application_1", 10200L), ("application_2",10202L), ("application_3",10001") .

现在我存储Environment我每次都使用应用程序名称构建属性名称并检索值。

String projectIdPropertyName = String.format("mine.application.basic-project-id.%s", applicationDescriptor.getName());
String softwareBasicProjectId = Long.valueOf(environment.getProperty(projectIdPropertyName));

最佳答案

这应该可行

@ConfigurationProperties("mine.application")
public class ApplicationProperties {

private Map<String,Long> basicProjectId = new HashMap<>();

public Map<String,Long> getBasicProjectId() {
return basicProjectId;
}
}


@SpringBootApplication
@EnableConfigurationProperties(ApplicationProperties.class)
public class YourApp { .... }

然后在任何需要这些东西的地方,只需注入(inject) ApplicationProperties。如果启用 Spring Boot configuration meta-data annotation processor to your build您还将获得该 key (以及您在该类(class)中添加的任何其他 key )的内容帮助。

关于java - 从 spring-boot 环境获取属性映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226506/

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