Wenn Sie die Annotation @ConfigurationProperties
verwenden, um Eigenschaften in eine Bean zu injizieren, bietet Spring die Möglichkeit, einen benutzerdefinierten Validator zum Überprüfen dieser Eigenschaften zu definieren.Mehrere @ConfigurationProperties-Validierungsbeans in Spring-Umgebung
Die ConfigurationPropertiesBindingPostProcessor
sucht diesen Validierer mit dem Namen der festen Bean "configurationPropertiesValidator"
und Klasse org.springframework.validation.Validator
.
Nun nehme ich an, ich habe eine @ConfigurationProperties
mit seinem Prüfer in einem Modul A. Ein anderes Modul B hat eine Abhängigkeit von Modul A. Modul B definiert auch seine eigenen @ConfigurationProperties
und einen eigenen Prüfer.
Wenn die App geladen wird, nimmt der Postprozessor nur eine dieser Beans auf. Dies deaktiviert den anderen Teil der Validierung.
Gibt es eine Lösung für dieses? Wie kann ich beide Validatoren für Konfigurationseigenschaften in meiner Anwendung aktiviert lassen?
ich gerade erkannte auch, dass das, indem Sie die Standard 'configurationPropertiesValidator' kehrt zurück zu' Jsr303ValidatorFactory' die bedeutet, dass Sie Eigenschaften mit Ihrer benutzerdefinierten Validator-Implementierung und JSR-303-Anmerkungen überprüfen können: –
Ich kann das nicht für mich arbeiten. Es scheint nur meinen Kunden Validator zu ignorieren – Plog