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.