Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Ai-je besoin d'un objet Service ?

Les principales raisons pour lesquelles j'ai tendance à privilégier une couche de service sont les deux raisons suivantes...

  1. Marquer les méthodes comme @Transactional afin que toutes les requêtes DAO à l'intérieur de cette méthode aient lieu en une seule transaction.

  2. Je peux augmenter la séparation des préoccupations du DAO et des rôles d'utilisateur. Je peux marquer les méthodes comme nécessitant certains rôles d'utilisateur et, en tant que telles, elles s'intègrent très bien à Spring Security.

Vous pouvez simplement appeler un DAO depuis le contrôleur, mais cela vous laisse bloqué si vous souhaitez développer plus tard. Pour obtenir la connexion, vous pouvez utiliser marquer le service comme @Transactional et le DAO comme @Repository et Spring se chargera de l'obtention de l'objet de session pour vous et de l'injection, etc.

J'ai tendance à penser (peut-être à tort) à la couche de service comme une façade accessible, que ce soit à partir d'un service Web ou d'un contrôleur ou autre, elle maintient la séparation.