Validierung im Frühjahr MVC in Controllern oder Service Layer?

Seit einiger Zeit versuche ich herauszufinden, wo die Validierung von Benutzereingaben in einer Spring MVC-Anwendung stattfinden soll. In vielen Online-Blogs und Tutorials habe ich grundsätzlich gelesen, dass ein Controller die Benutzereingaben validieren und, falls ungültig, dem Benutzer mit einer Seite antworten sollte, die die Fehlermeldung enthält. Mein gegenwärtiges Verständnis des Spring- und Spring-MVC-Schichtsystems ist jedoch, dass ein Controller eine nur flache Schnittstelle zwischen der Anwendungslogik (Service-Schicht) und der "Web-Welt" ist, die die Verwendung der Service-Schicht aus dem Web ermöglicht. Soweit ich sehen kann, bietet Spring MVC außerdem nur sinnvolle Tools für die Validierung in einem Controller.

Wenn die Validierung jetzt in einem Controller stattfindet und ich die Anwendungslogik zu einem späteren Zeitpunkt von der "Web-Welt" lösen möchte, muss die Validierungslogik in der neuen Umgebung (z. B. einer Desktop-Anwendung mit Swing) erneut implementiert werden. Meiner Meinung nach ist die Fähigkeit, zu entscheiden, welche Vorgänge für Domänenobjekte "gültig" sind und welche "gültigen" Zustände solche Objekte haben können, Kernbestandteil der Dienstschicht und nicht das Anliegen eines anderen Teils der Anwendung (z. B. Controller).

Warum ist es in diesem Zusammenhang eine "gute Praxis", die Eingangsüberprüfungslogik in der Controllerschicht und nicht in der Dienstschicht zu platzieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage