Mi aplicación web está escrita usando Spring MVC + Hibernate.¿Realmente necesito una capa de servicio?
- Mi modelo es "Cliente" entity POJO.
- Tengo un objeto DAO "CustomerDAO", su método "saveCustomer (c)" contiene el código que interactúa con Hibernate;
- Entonces creó una "CustomerService con un '' método que simplemente pasar el objeto de cliente a la DAO para el ahorro;
- Por último, hay 'saveCustomer (c) CustomerController' y customer.jsp, que son responsables de la capa de vista, los campos de formulario jsp están vinculados a un objeto Cliente en el lado del controlador. El controlador llama al servicio.
Vi muchas aplicaciones seguir esta (mejor) práctica, pero me pregunto por qué necesitaría una capa de servicio.
Quizás es útil para desacoplar p propósito: puedo mostrar una fachada universal a los controladores e insertarla en el servicio HibernateDAO, GaeDAO, MyDAO, etc. ... Pero podría hacerlo sin el servicio: usando una interfaz.
También pensé: validación. Haré mi validación del cliente en el servicio pero .... es mucho más conveniente validar en el controlador de Spring.
Ayúdame a entender el concepto :)
El servicio también podría proporcionar lógica compartida a uno o más controladores (por ejemplo, controladores web y una API JSON/WS) – seanhodges
También puede exponer fácilmente servicios (métodos de servicio) como servicios web de esta manera ... –
@seanhodges, matjaz, sí, de hecho, excelentes sugerencias –