Spring Boot空YAML配置无法覆盖低优先级属性问题求助
Spring Boot中清空HashMap类型配置项的解决方案
Spring Boot对Map、集合这类复杂类型的配置,默认逻辑是合并而非直接覆盖。你根目录application.yml里只写queryParams:(空映射)时,系统会把它和类路径配置里的queryParams条目合并,所以filter: myFilter会被保留;而像path这种简单字符串属性,是直接覆盖,所以能生效。
要彻底清空queryParams,可以用以下两种方法:
方法一:显式设置为
null
修改根目录的application.yml为:restresource: queryParams: null这样Spring Boot会直接把该Map属性置为空,完全覆盖类路径配置里的原有条目。
方法二:利用Spring Boot 2.4+的合并语法(可选)
如果你的Spring Boot版本是2.4及以上,也可以用配置合并标记强制替换映射:restresource: queryParams: !!merge <<: null这个语法会强制清空原有映射,不会进行合并操作。
修改后重启应用,queryParams对应的HashMap就会是空的,不再包含filter: myFilter条目。
内容的提问来源于stack exchange,提问作者Claus Polanka
相关产品推荐
相关产品推荐

