sql >> Base de Datos >  >> RDS >> Sqlserver

¿Necesito un objeto de servicio?

Las principales razones por las que tiendo a inclinarme por tener una capa de servicio son las siguientes dos razones...

  1. Marcar métodos como @Transactional para que todas las solicitudes de DAO dentro de este método se realicen en una sola transacción.

  2. Puedo aumentar la separación de preocupaciones del DAO y los roles de usuario. Puedo marcar los métodos para que requieran ciertos roles de usuario y, como tal, encaja muy bien con Spring Security.

Simplemente puede llamar a un DAO desde el controlador, pero lo deja atascado si desea expandirlo más adelante. Para obtener la conexión, puede marcar el servicio como @Transactional y el DAO como @Repository y Spring se encargará de obtener el objeto de la sesión por usted y la inyección, etc.

Tiendo a pensar (quizás incorrectamente) en la capa de servicio como una fachada a la que se accede, ya sea desde un servicio web o un controlador o lo que sea, mantiene la separación.