У меня есть 2 загрузочных проекта Spring, которые используют общую библиотеку. Давайте назовем их api1 и api2. Они оба назвали конфигурацию очереди в своих файлах начальной загрузки yml с небольшой разницей:
api1 yml:
queues:
queueOne:
queue-name: queue-one
routing-key: queue-one
queueTwo:
queue-name: queue-two
routing-key: queue-two
api2 yml:
queues:
queueOne:
queue-name: queue-one
routing-key: queue-one
concurrency: 5
queueTwo:
queue-name: queue-two
routing-key: queue-two
concurrency: 5
В общей библиотекеУ меня есть следующий класс:
/**
* Queue configuration bean class
* **/
@Data
public class QueueConfiguration
{
@NotBlank
private String queueName;
@NotBlank
private String routingKey;
}
Также в общем классе:
@Data
public class ListenerQueueConfiguration extends QueueConfiguration
{
@Max(value = 5, message = "Max concurrency is 5.")
@Min(value = 1, message = "Min concurrency is 1.")
private Integer concurrency = 1;
}
Оба имеют свои соответствующие классы @Configuration:
api1:
@Configuration
@ConfigurationProperties(prefix = "queues")
@Data
AppOneConfigurationProperties
{
@NotNull
private QueueConfiguration queueOne;
@NotNull
private QueueConfiguration queueTwo;
}
api2:
@Configuration
@ConfigurationProperties(prefix = "queues")
@Data
AppTwoConfigurationProperties
{
@NotNull
private ListenerQueueConfiguration queueOne;
@NotNull
private ListenerQueueConfiguration queueTwo;
}
При запуске оба приложения не имеют проблем с чтением этих значений, однако процессор конфигурации весенней загрузки, который разрешает поля для среды IDE (затмение STS), выделяетунаследованные поля queueName и routingKey в yml как неизвестные свойства для app2. Кажется, он не может читать наследуемые свойства. Могу ли я добавить что-нибудь в виде аннотации или что-то, что поможет этому валидатору кода IDE распознать, что это допустимые поля? Я действительно не хочу дублировать поля в этих классах. *