Java 如何在单独的类中验证两个字段?

Java 如何在单独的类中验证两个字段?,java,spring,Java,Spring,我试图验证单独@ConfigurationProperties类中的两个字段。这些类中的属性由spring容器设置。由于应用程序设计的原因,我无法合并这两个类。如何实现这种验证 我尝试了观察者模式,以便在其他类中通知这些类中的更改,然后可以进行验证,但观察者模式适用于一对多而不是多对一 尝试验证MultipleQueueEnabled是否设置为false,则url不应为null,url应为null。若multiplequeuenabled设置为true,则url不应为null,url应为null

我试图验证单独@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类中的静态类移动,然后进行自定义注释以验证属性