gpt4 book ai didi

java - 在 Spring Boot 中访问外部配置的好习惯是什么?

转载 作者:行者123 更新时间:2023-12-02 09:48:59 25 4
gpt4 key购买 nike

我正在设置一个 Spring Boot 应用程序,其中某些配置是从我的 application.yaml 文件中读取的。我之前已经这样做过几次并且效果很好,但我想知道是否有更好的方法在运行时访问此配置,或者我是否因不遵循一些最佳实践而产生了可能的问题。

现在,提取配置的类被简单地定义为一个组件,如下所示:

@Component
@EnableConfigurationProperties
@ConfigurationProperties("myPrefix")
public class MyExternalConfiguration{
private HashMap<String, Boolean> entries= new HashMap<String, Boolean>();

public Boolean getConfigurationForKey(String key) {
return this.entries.get(key);
}
}

然后自动连接到其他几个需要访问此配置的类,如下所示:

@Component
public class MyClass{
@Autowired
private MyExternalConfiguration myExternalConfiguration;

public void doSomething(){
//...
Boolean someEntry = myExternalConfiguration.getConfigurationForKey(someKey);
}
}

现在,这确实工作得很好。只是我见过这样的配置作为单例处理的示例(尽管不是在 Spring-Boot 环境中)。我只是想问,是否有一些普遍接受的方式来访问外部配置,或者您是否发现我在项目中访问它的方式存在问题。

提前谢谢您!

最佳答案

Spring Boot引用手册中有整整一章介绍配置:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config

简单地说有两个选项可以访问配置:

使用值注释:

@Value("${name}")
private String name;

或者使用配置类进行类型安全:

@ConfigurationProperties(prefix="my")
public class Config {

private List<String> servers = new ArrayList<String>();

public List<String> getServers() {
return this.servers;
}
}

所以不需要自己去读取配置文件。

关于java - 在 Spring Boot 中访问外部配置的好习惯是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456072/

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