Heim >Java >javaLernprogramm >Detaillierte Einführung in Hibernate_Validator
Zu jeder Zeit, wenn Sie die Geschäftslogik einer Anwendung verwalten möchten, Datenvalidierung ist etwas, das man bedenken und dem man sich stellen muss. Die Anwendung muss über Mittel verfügen, um sicherzustellen, dass die eingehenden Daten semantisch korrekt sind. Typischerweise sind Anwendungen mehrschichtig, wobei verschiedene Schichten von verschiedenen Entwicklern fertiggestellt werden. Oftmals erscheint dieselbe Datenvalidierungslogik auf verschiedenen Ebenen, was zu Coderedundanz und einigen Verwaltungsproblemen, wie z. B. der semantischen Konsistenz, führt. Um eine solche Situation zu vermeiden, ist es am besten, die Validierungslogik an das entsprechende Domänenmodell zu binden.
Bean Validation definiert das entsprechende Metadatenmodell und die API für die JavaBean-Validierung. Die Standardmetadaten sind Java-Annotationen, und die ursprünglichen Metadateninformationen können mithilfe von XML überschrieben und erweitert werden. Bean Validation ist ein Framework zur Laufzeitdatenvalidierung. Informationen zu Validierungsfehlern werden unmittelbar nach der Validierung zurückgegeben.
Hibernate Validator ist die Referenzimplementierung von Bean Validator und bietet zusätzlich zu einigen zusätzlichen Einschränkungen die Implementierung aller integrierten Einschränkungen in der JSR 303-Spezifikation.
a) Die Trennung von Verifizierungslogik und Geschäftslogik reduziert die Programmkopplung
b) Vereinheitlicht und standardisiert Verifizierungsmethode, Sie müssen keinen wiederholten Verifizierungscode schreiben.
c) Sie können sich mehr auf Ihr Geschäft konzentrieren und diese mühsamen Dinge beiseite lassen. < ;dependency>
Die Demo dieses Artikels basiert auf SpringMVC, was erfordert Nehmen Sie relevante Konfigurationen vor.
2.3 Einschränkung zu JavaBean hinzufügen
Wie in der Abbildung gezeigt, werden dem Benutzer mehrere Einschränkungen hinzugefügt: Der Name ist nicht leer und die Längenbeschränkung wird mit einer benutzerdefinierten Einschränkung hinzugefügt, die später eingeführt wird. Die Überprüfung von JSR-303 basiert auf Anmerkungen, und eine Reihe von Einschränkungsanmerkungen wurden intern definiert. Wir müssen diese Anmerkungen nur auf den Attributen der Entitätsklasse markieren, die überprüft werden müssen, oder auf den entsprechenden Get-Methoden.2.4 Benutzerdefinierte Einschränkung
Wie in der Abbildung gezeigt, wird eine ValidSex-Anmerkung definiert und die Anmerkung wird mit dem @ markiert Einschränkungsanmerkung: Die Verwendung der @Constraint-Anmerkung zeigt an, dass wir eine Anmerkung für Einschränkungen definiert haben. Das Attribut „validatedBy“ der Annotation „@Constraint“ wird verwendet, um anzugeben, welcher ConstraintValidator der von uns definierte aktuelle Einschränkungstyp überprüft werden muss. Im obigen Code haben wir angegeben, dass die Validierungsklasse des ValidSex-Einschränkungstyps ValidSexValidator ist. Darüber hinaus ist zu beachten, dass drei Attribute definiert werden müssen, wenn wir unsere eigenen eingeschränkten Typanmerkungen definieren, z. B. die im obigen Code gezeigten Nachrichten-, Gruppen- und Nutzlastattribute.
Wie im Bild gezeigt, verwendet ConstraintValidator Generika. Es müssen insgesamt zwei Typen angegeben werden. Der erste Typ ist der Parametertyp der entsprechenden Initialisierungsmethode und der zweite Typ ist der erste Parametertyp der entsprechenden isValid-Methode. Aus den beiden oben genannten Methoden können wir ersehen, dass die Initialisierungsmethode die Attribute des aktuellen Einschränkungstyps abrufen kann und die isValid-Methode zur Überprüfung verwendet wird.
2.6 Parameter überprüfen
Im Bild oben können wir sehen, dass wir einen LoginController definiert haben, der den Validator-Vorgang übernimmt. Er muss ein vom Client gesendetes Benutzerobjekt empfangen Validator, um dies zu tun. Zuerst können wir sehen, dass der von unserer Validierungsmethode empfangene Parameter user mit @Valid annotiert ist. Darüber hinaus muss unserer Prozessormethode ein Parameter mit Errors zugewiesen werden, der Errors selbst oder seine Unterklasse BindingResult sein kann. Durch die Verwendung des Errors-Parameters wird Spring mitgeteilt, dass Fehler bei der Formularobjektdatenüberprüfung von uns selbst behandelt werden. Andernfalls löst Spring eine Ausnahme aus direkt. Auf diese Weise wird das Benutzerobjekt überprüft, wenn wir den Prozessormethodenvalidator anfordern, und die relevanten Überprüfungsinformationen werden im aktuellen Errors-Objekt gespeichert. Dann können wir in unserer Prozessormethode unterschiedliche Vorgänge ausführen, je nachdem, ob Informationen zu Verifizierungsausnahmen vorliegen. Im obigen Code definieren wir, dass wir bei Ausnahmeinformationen zur Anmeldeseite springen. Auf diese Weise können wir diese Fehlermeldungen über das Fehler-Tag auf der Anmeldeseite anzeigen.
a) Wenn Sie ein Attribut (Getter-Methode) überprüfen, müssen Sie die Namenskonvention von Java Beans befolgen (JavaBeans-Spezifikation);
b) Statisch Felder und Methoden können nicht einer Einschränkungsüberprüfung unterzogen werden.
c) Einschränkungen gelten für Schnittstellen und Basisklassen.
d) Die durch Einschränkungsanmerkungen definierten Zielelemente können Felder, Attribute oder Typen sein 🎜>
e) Sie können die Einschränkungsvalidierung für eine Klasse oder Schnittstelle verwenden, die eine Zustandsüberprüfung für die Klasse oder Instanz durchführt, die die Schnittstelle implementiert. f) Sie können die Einschränkungsvalidierung für Felder und Attribute verwenden , aber das ist nicht möglich. Dieselben Einschränkungen werden wiederholt für Felder und zugehörige Eigenschaften (Getter-Methoden von Feldern) deklariert. Fazit: Seien Sie freundlich zu allen um Sie herum, denn sie sind es, die Ihr Leben möglich machen.Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Hibernate_Validator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!