Sobes.tech
Middle

¿Cuál es la diferencia entre las anotaciones Component, Repository y Service en Spring?

sobes.tech AI

Respuesta de la IA

Todas estas anotaciones son componentes especializados @Component. Se utilizan para detectar automáticamente los componentes de Spring mediante el escaneo del classpath.

Las principales diferencias radican en la semántica y el uso previsto:

  • @Component: Anotación estereotipada general para cualquier componente de Spring. Puede usarse para clases que no encajan en categorías más específicas.
  • @Repository: Indica una clase que cumple la función de repositorio de datos. Spring proporciona una conversión automática de excepciones específicas de acceso a datos en una jerarquía de excepciones unificada de Spring para clases con esta anotación.
  • @Service: Indica una clase en la capa de servicio de la aplicación. Generalmente contiene la lógica empresarial de la aplicación. Se usa para mejorar la legibilidad del código y la estructuración de la aplicación.
Anotación Propósito Semántica
@Component Componente general de Spring General, universal
@Repository Repositorio de datos Acceso a datos, DAO
@Service Capa de servicio, lógica empresarial Lógica empresarial, servicio