Я не могу ввести картуиз файла YAML - PullRequest
1 голос
/ 22 марта 2019

У меня есть эти свойства в моем файле YAML:

request-topic:
  topics:
    IMPORT_CHARGES: topic-name-1
    IMPORT_PAYMENTS: topic-name-2
    IMPORT_CATALOGS: topic-name-3

И этот класс:

@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "topic-properties")
public class TopicProperties {
    private Map<String, String> topics = new HashMap<>();

    public String getTopicNameByType(String type){
        return topics.get(type);
    }
}

Но когда я автоматически подключаю эти свойства, я получаю пустую карту:

@Service
public class TopicRouterImpl implements TopicRouter {

    private final TopicProperties topics;

    public TopicRouterImpl(TopicProperties topics) {
        this.topics = topics;
    }

    @PostConstruct
    public void init(){
        topics.getTopicNameByType("IMPORT_CHARGES");
    }

    @Override
    public String getTopicName(MessageType messageType) {
        return topics.getTopicNameByType(messageType.name());
    }
}

1 Ответ

1 голос
/ 22 марта 2019

Это связано с несоответствием имени в вашем файле yaml, оно должно быть равно указанному префиксу: topic-properties. Как это:

topic-properties:
  topics:
    IMPORT_CHARGES: topic-name-1
    IMPORT_PAYMENTS: topic-name-2
    IMPORT_CATALOGS: topic-name-3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...