Java 如何在单独的类中验证两个字段?
我试图验证单独@ConfigurationProperties类中的两个字段。这些类中的属性由spring容器设置。由于应用程序设计的原因,我无法合并这两个类。如何实现这种验证 我尝试了观察者模式,以便在其他类中通知这些类中的更改,然后可以进行验证,但观察者模式适用于一对多而不是多对一 尝试验证MultipleQueueEnabled是否设置为false,则url不应为null,url应为null。若multiplequeuenabled设置为true,则url不应为null,url应为null 第一类物业:-Java 如何在单独的类中验证两个字段?,java,spring,Java,Spring,我试图验证单独@ConfigurationProperties类中的两个字段。这些类中的属性由spring容器设置。由于应用程序设计的原因,我无法合并这两个类。如何实现这种验证 我尝试了观察者模式,以便在其他类中通知这些类中的更改,然后可以进行验证,但观察者模式适用于一对多而不是多对一 尝试验证MultipleQueueEnabled是否设置为false,则url不应为null,url应为null。若multiplequeuenabled设置为true,则url不应为null,url应为null
@ConfigurationProperties(prefix = "aws.sqs")
@Validated
public class SqsProducerStarterProperties
@NotNull
private boolean multipleQueuesEnabled;
public boolean isMultipleQueuesEnabled() {
return multipleQueuesEnabled;
}
public void setMultipleQueuesEnabled(boolean multipleQueuesEnabled) {
this.multipleQueuesEnabled = multipleQueuesEnabled;
}
}
@ConfigurationProperties(prefix = "aws.sqs.fifo")
@Validated
public class SqsFifoStarterProperties {
private Map<String, String> urls;
private String url;
@Override
public Map<String, String> getUrls() {
return urls;
}
public void setUrls(Map<String, String> urls) {
this.urls = urls;
}
@Override
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
第二类物业:-
@ConfigurationProperties(prefix = "aws.sqs")
@Validated
public class SqsProducerStarterProperties
@NotNull
private boolean multipleQueuesEnabled;
public boolean isMultipleQueuesEnabled() {
return multipleQueuesEnabled;
}
public void setMultipleQueuesEnabled(boolean multipleQueuesEnabled) {
this.multipleQueuesEnabled = multipleQueuesEnabled;
}
}
@ConfigurationProperties(prefix = "aws.sqs.fifo")
@Validated
public class SqsFifoStarterProperties {
private Map<String, String> urls;
private String url;
@Override
public Map<String, String> getUrls() {
return urls;
}
public void setUrls(Map<String, String> urls) {
this.urls = urls;
}
@Override
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
关于如何在上述场景中实现验证的任何想法。属性将由spring容器设置,因此我无法对其进行控制。为了解决此问题,我将SqsFifoStarterProperties类作为SqsProducerStarterProperties类中的静态类移动,然后进行自定义注释以验证属性