gpt4 book ai didi

java - Spring boot ConfigurationProperties - 注入(inject)带有比较器的 TreeMap

转载 作者:行者123 更新时间:2023-12-02 09:31:29 24 4
gpt4 key购买 nike

我在 Spring Boot 应用程序中有以下配置属性:

@Configuration
@ConfigurationProperties(prefix = "test")
public class ConfigProperties {

private Map<String, String> values = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

public void setValues(Map<String, String> values) {
this.values = values;
}

我希望最终得到一个忽略按键大小写的 Map。

当注入(inject)发生时,setValues 方法会收到一个没有比较器的树形图。

我通过将 setter 更改为以下内容来修复此问题:

    public void setValues(Map<String, String> values) {
this.values.clear();
this.values.putAll(values );
}

有正确的方法吗?我错过了什么吗?

最佳答案

我认为您正在正确地执行所有操作,将一个任意映射的所有条目复制到带有自定义比较器的排序 TreeMap 中。基本上你只有两个选择:清除并 putAll 或创建一个新实例并 putAll

但是,我认为这不应该是配置负责的事情。您的预期订单可能具有一定的商业值(value),具体取决于其用途。因此排序应该发生在使用配置值的代码中。但话又说回来,请参阅上面的两个选项。

关于java - Spring boot ConfigurationProperties - 注入(inject)带有比较器的 TreeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57928277/

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