Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Preciso de um objeto Service?


As maiores razões pelas quais eu tendo a tendência de ter uma camada de serviço são as duas razões a seguir...

  1. Marcando métodos como @Transactional para que todas as solicitações DAO dentro desse método ocorram em uma única transação.

  2. Posso aumentar a separação de preocupação do DAO e das funções do usuário. Eu posso marcar métodos como exigindo certas funções de usuário e, como tal, ele se encaixa muito bem com o Spring Security.

Você pode simplesmente chamar um DAO do controlador, mas isso o deixará preso se quiser expandir mais tarde. Para obter a conexão, você pode usar marcar o serviço como @Transactional e o DAO como @Repository e o Spring lidará com toda a obtenção do objeto de sessão para você e injeção etc.

Eu costumo pensar (talvez incorretamente) na camada de serviço como uma fachada que é acessada, seja de um serviço da Web ou de um controlador ou qualquer outra coisa, ela mantém a separação.