Sobes.tech
Middle

Qual é a diferença entre as anotações Component, Repository e Service no Spring?

sobes.tech IA

Resposta da IA

Todas estas anotações são componentes especializados @Component. São usadas para detecção automática de componentes Spring através da varredura do classpath.

As principais diferenças residem na semântica e no uso pretendido:

  • @Component: Anotação estereotipada geral para qualquer componente Spring. Pode ser usada para classes que não se enquadram em categorias mais específicas.
  • @Repository: Indica uma classe que desempenha o papel de repositório de dados. O Spring fornece uma conversão automática de exceções específicas de acesso a dados para uma hierarquia de exceções unificada do Spring para classes com essa anotação.
  • @Service: Indica uma classe na camada de serviço da aplicação. Geralmente contém a lógica de negócio da aplicação. Usada para melhorar a legibilidade do código e a estruturação da aplicação.
Anotação Propósito Semântica
@Component Componente geral do Spring Geral, universal
@Repository Repositório de dados Acesso a dados, DAO
@Service Camada de serviço, lógica de negócio Lógica de negócio, serviço