我有2个Spring Boot项目,它们共享一个公共库。 我们称它们为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 eclipse)的spring-boot-configuration-processor会突出显示yml中继承的queueName和routingKey字段,作为app2的未知属性。它似乎无法读取继承的属性。有什么我可以添加的注释或可以帮助此IDE代码验证器识别出这些是有效字段的内容吗?我真的不想重复这些类中的字段。*