2016-07-26 9 views
1

Meine Frage ist folgende ignorieren:SpringBoot Anwendung XML-Konfiguration für HibernateValidator

Ist es möglich, XML-Konfiguration für HibernateValidator, das heißt ausschließen validation.xml Parsing in einer SpringBoot Anwendung zu ignorieren?

Ich habe keine Notwendigkeit für eine Validierung.xml in meiner Anwendung, aber ich sehe, dass beim Starten der Anwendung versucht, diese Datei zu analysieren. Ich fand diese in der Hibernate Validator Dokumentation (https://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-xmlconfiguration.html):

Es ist sogar möglich, die XML-Konfiguration vollständig über Configuration.ignoreXmlConfiguration() zu ignorieren.

Was ich sehe, ist, dass in der LocalValidatorFactoryBean.afterPropertiesSet() Methode, die Konfiguration für den Validator erstellt wird. Diese Bean hat eine Methode namens postProcessConfiguration (Konfigurationskonfiguration), die aufgerufen wird, bevor die validatorFactory aus der Konfiguration erstellt wird. Es schien ein idealer Ort, um die ignoreXmlConfiguration() -Methode aufzurufen, was die Dokumentation vorgeschlagen.

Ich habe versucht, diese LocalValidatorFactoryBean zu erweitern, so dass ich diesen Aufruf in der oben genannten Methode implementieren kann. Dann habe ich versucht, diese Bean über die Java-Konfigurationsklasse zu laden.

Leider verwendet einige Bootstrapping-Mechanismen bereits die von Spring bereitgestellte Bean, bevor sie meine, die beiden Beans, gleichzeitig ausführen. Ich sah die Nachricht, dass die XML-Konfiguration mit der Bean, die ich erstellt habe, ignoriert wurde, jedoch half diese Lösung nicht, weil die von Spring bereitgestellte Bean nicht durch meine ersetzt wurde.

Ich habe auch versucht zu finden, ob es eine Anwendungseigenschaft gibt, die ich verwenden kann, oder eine Autokonfiguration ausschließen, aber kein Glück.

Irgendwelche Ideen? :)

UPDATE: Ich versuchte, die HibernateJPAAutoConfiguration auszuschließen, es hat nicht geholfen.

Antwort

1

Wenn Sie den Hibernate-Validator nicht benötigen, entfernen Sie alle Abhängigkeiten, die sich auf den Hibernate-Validator beziehen, aus der Datei pom.xml. Sie können auch versuchen, @EnableAutoConfiguration (excludes =) das Hinzufügen von Anmerkungen in Ihrer Application-Klasse zu verwenden, um die Standardvalidierungskonfiguration auszuschließen.

wie @SpringBootApplication (exclude = {HibernateJpaAutoConfiguration.class, DataSourceAutoConfiguration.class}})

+0

Danke für die Antwort. Ich brauche den Hibernate-Validator, daher ist das Entfernen der Abhängigkeit keine Option. Ich habe versucht, die HibernateJPAAut-Konfiguration auszuschließen, leider hat es nicht geholfen. – slevinn

+0

Wenn Sie validation.xml im Klassenpfad Ihrer Anwendung haben, entfernen Sie einfach das, und Spring Boot konfiguriert automatisch HibernateValidator als Standardvalidator für Ihre Anwendung, sobald es jar dafür findet. –

+0

Ich habe keine validation.xml, aber wenn die validatorFactory erstellt wird, versucht die ** org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory() ** die XML-Konfiguration zu analysieren. Dies ist das Verhalten, das ich ausschließen möchte, weil es unnötig ist. Während des Parsens prüft das erste, ob das ignoreXmlConfiguration-Flag wahr oder falsch ist.Ich wäre nett, wenn ich diese Flagge irgendwie falsch setzen könnte, das würde mein Problem lösen. – slevinn

Verwandte Themen