Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Benötige ich ein Service-Objekt?

Die Hauptgründe, warum ich dazu neige, eine Serviceschicht zu haben, sind die folgenden zwei Gründe...

  1. Markieren von Methoden als @Transactional, sodass alle DAO-Anforderungen innerhalb dieser Methode in einer einzigen Transaktion stattfinden.

  2. Ich kann die Trennung des Anliegens von der DAO und den Benutzerrollen erhöhen. Ich kann Methoden so markieren, dass sie bestimmte Benutzerrollen erfordern, und als solche passt es wirklich gut zu Spring Security.

Sie können ein DAO einfach vom Controller aus aufrufen, aber es lässt Sie stecken, wenn Sie später erweitern möchten. Um die Verbindung herzustellen, können Sie den Dienst als @Transactional markieren und das DAO als @Repository und Spring übernimmt das gesamte Abrufen des Sitzungsobjekts für Sie und die Injektion usw.

Ich neige dazu, (vielleicht fälschlicherweise) an die Serviceschicht als eine Fassade zu denken, auf die zugegriffen wird, sei es von einem Webdienst oder einem Controller oder was auch immer, sie hält die Trennung aufrecht.