referencia que negocios negocio mvc lógica logica informatica hace ejemplo datos capa java spring-mvc business-logic

java - que - ¿Dónde poner la lógica de negocios en el marco de mvc de primavera?



que es logica de negocio en java (3)

No sé dónde poner la lógica de negocios en Spring Mvc porque soy nuevo en eso. Tengo una idea de qué hacer, pero debido a la falta de conocimientos en Spring Mvc, no sé por dónde empezar. También me gustaría preguntar si alguien sabe dónde puedo obtener un buen tutorial sobre este o una muestra completa de una aplicación web de spring mvc que tenga una lógica empresarial. De todos modos, la lógica de negocios de la que hablaba es todo acerca del manejo de la base de datos :)


Generalmente, su lógica de negocio va en la capa de servicio. Aunque puede poner reglas de validación básicas en sus pojos con anotaciones JSR.

Para una aplicación Spring MVC tiene controladores, que manejan solicitudes de http, y una capa de dominio, que son pojos que representan sus modelos de negocio. A menudo tienes una capa de persistencia, o DAO. También puede tener una capa de servicio, para ayudar con la lógica no trivial.

Tu comentario sobre el manejo de la base de datos no tiene sentido. Las reglas de negocio son ortogonales para almacenar datos. El manejo de su base de datos debe ir en su capa de persistencia.


Mucha gente recomendaría agregar la lógica empresarial a la capa de servicio. Personalmente, descubro que no es una buena idea, especialmente cuando comienza a realizar pruebas: es posible que tenga que lidiar con la persistencia y la lógica empresarial al mismo tiempo, o burlarse de todo, y luego las cosas pueden complicarse mucho.

Recomiendo leer este artículo antes de sacar conclusiones: Las aplicaciones web con el mayor defecto de Spring

En resumen, la idea sería mover la lógica de negocios a la capa del modelo y simplificar los métodos de sus servicios.


@Controller clases de @Controller sirven como C de MVC . Tenga en cuenta que el controlador real en Spring MVC es DispatchServlet que usará la clase específica de @Controller para manejar la solicitud de URL.

@Service clases de @Service deben servir para su capa de servicio. Aquí deberías poner tu lógica empresarial .

@Repository clases de @Repository deben servir para su capa de acceso a datos. Aquí debe poner la lógica CRUD: insertar, actualizar, eliminar, seleccionar.

@Service , @Repository y sus clases de entidad serán M de MVC . JSP y otras tecnologías de visualización (por ejemplo, JSP, Thymeleaf, etc.) conformarán V de MVC .

@Controller clases @Controller solo deberían tener acceso a @Service clases @Service través de interfaces. Similarmente, @Service clases @Service solo deberían tener acceso a otras clases @Service y para un conjunto específico de clases @Repository través de interfaces.