java - Spring Boot - 使用变量键从 application.yml 注入映射
问题描述
所以我的 application.yml 会是这样的:
urls:
login: http://mylogin.url
restInterceptor:
log:
fieldsToHide: {'${urls.login}':'password'}
我在我的java代码中需要这个:
private Map<String, String> fieldsToHide;
首先,我尝试使用@Value
注释,如下所示:
@Value("${restInterceptor.log.fieldsToHide}")
private Map<String, String> fieldsToHide;
但它失败了。似乎您无法从带有@Value
注释的 yaml 中注入地图,因此我尝试了此问题中的解决方案。
@Service
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "restInterceptor.log")
public class MyClass {
private Map<String, String> fieldsToHide;
然后映射被注入,但键的值是'${urls.login}'
而不是http://mylogin.url
.
如果我以相反的方式在我的 yaml 中配置地图{'password':'${urls.login}'}
,它会被正确地注入属性值。
我究竟做错了什么?这甚至可能吗?
解决方案
推荐阅读
- docker - 将容器存储在路径中
- javascript - 使用 Cloud Function 在 Firestore 上写入数据突然失败
- c - Apple Hypervisor 在 MacOS Big Sur beta 11.0.1 上完全崩溃
- file - Typo3 Powermail 文件上传 上传前调整文件大小
- c++ - Robocopy - 如果我在它完成之前停止它会产生损坏的文件吗?
- sql - 检查字符串是否存在子字符串
- python - 如何检查 3 列是否相同,如果值相同,如何添加一个新列?
- r - 如何使用闪亮在交互式 html 报告中显示两个数据输出
- javascript - 电子:NodeJS 'net' 模块返回空对象
- r - 为什么随机效应估计器不正确