Как читать @ConfigurationProperties для разных префиксов в одном классе - PullRequest
0 голосов
/ 25 октября 2018

У меня есть 2 разных application.yaml на github для весенней загрузки.Ниже приведен пример содержимого для:

first application.yaml : application: name: sample-service second application.yaml : common: kafka: topic: test

Я создал один класс конфигурации (abc.java) with @ConfigurationProperties( prefix='common.kafka') и другой класс конфигурации (xyz.java) with @ConfigurationProperties( prefix='application')

Здесь, в xyz.java,Я наследую abc.java.При выполнении xyz.java я не могу получить доступ к свойствам abc.java, получая NPE.Это достигается, если я сохраняю ту же иерархию префиксов, т.е. @ConfigurationProperties (prefix = 'application')

Короче говоря, я хочу получить доступ к обеим конфигурациям application.yaml в одном классе пружинного микросервиса.Однако я не могу этого достичь.Пожалуйста, предоставьте любые предложения для доступа к обоим свойствам.

1 Ответ

0 голосов
/ 25 октября 2018

Почему вы должны наследовать один класс от другого?

Не лучше ли иметь новый класс, в котором два аннотированных класса @ConfigurationProperties являются свойствами.

Например

@Component
public class Properties {

    @Autowired
    ApplicationProperties applicationProperties;

    @Auworied
    KafkaProperties kafkaProperties;
}

и просто используйте свой Properties.class везде, где вам нужно

...