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 |