Package com.proyecto.jpa.service
package com.proyecto.jpa.service
Paquete que contiene la capa de servicios (lógica de negocio).
Descripción
Este paquete implementa el patrón Service Layer, separando la lógica de negocio de la lógica de presentación y acceso a datos. Los servicios coordinan operaciones complejas que pueden involucrar múltiples repositorios y validaciones de negocio.Servicios Disponibles
OrderService- Gestión de lógica de negocio de pedidos
Responsabilidades de la Capa de Servicio
- Lógica de Negocio: Implementa reglas de negocio complejas
- Coordinación: Orquesta múltiples repositorios
- Validación: Valida datos antes de persistir
- Transacciones: Define límites transaccionales con @Transactional
- Transformación: Convierte entre entidades y DTOs
Patrón Service Layer
El patrón Service Layer proporciona una interfaz de alto nivel para operaciones de negocio, encapsulando la lógica compleja y promoviendo la reutilización de código.
Arquitectura en Capas
Controller/API (Presentación)
↓
Service (Lógica de Negocio) ← Esta capa
↓
Repository (Acceso a Datos)
↓
Database (Persistencia)
Ejemplo de Uso
@RestController
@RequestMapping("/api/orders")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping
public Order createOrder(@RequestBody OrderDTO orderDTO) {
// El controlador delega la lógica al servicio
return orderService.createOrder(orderDTO);
}
}
Ventajas del Patrón Service
- Separa responsabilidades (Separation of Concerns)
- Facilita el testing (se puede mockear fácilmente)
- Centraliza la lógica de negocio
- Permite reutilización de operaciones complejas
- Simplifica los controladores
Anotaciones Comunes
- @Service: Marca la clase como un servicio de Spring
- @Transactional: Define límites transaccionales
- @Autowired: Inyecta dependencias automáticamente
- Version:
- 1.0.0
- Author:
- Proyecto JPA
- See Also:
-
ServiceTransactional
-
ClassesClassDescriptionServicio para la gestión de categorías (Capa de Negocio).Servicio para la gestión de clientes (Capa de Negocio).Servicio para la gestión de items de pedidos (Capa de Negocio).Servicio para la gestión de pedidos y su lógica de negocio.Servicio para la gestión de productos (Capa de Negocio).