Так что мой 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;
Но это не удалось. Кажется, что вы не можете внедрить карту из yaml с аннотацией @Value
, поэтому я попытался решить в этот вопрос .
@Service
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "restInterceptor.log")
public class MyClass {
private Map<String, String> fieldsToHide;
И тогда карта вводится, но значение ключа '${urls.login}'
вместо http://mylogin.url
.
Если я настрою карту в своем yaml наоборот {'password':'${urls.login}'}
, она будет правильно введена со значением свойства.
Что я делаю не так? Это вообще возможно?