Junior
Wat is het verschil tussen de annotaties @Service, @Repository en @Controller in Spring?
sobes.tech AI
Antwoord van AI
Dit zijn Spring-annotaties die worden gebruikt om klassen te markeren als componenten van bepaalde lagen van de toepassing:
@Service: Gebruikt voor klassen die de bedrijfslogica vertegenwoordigen. Bevat gewoonlijk methoden die gegevens verwerken die uit de repository-laag zijn verkregen.@Repository: Gebruikt voor klassen die omgaan met de gegevensopslaglaag (bijvoorbeeld een database). Biedt methoden voor toegang tot gegevens.@Controller: Gebruikt voor klassen die inkomende HTTP-verzoeken verwerken. Bevat gewoonlijk methoden die een weergave of gegevens retourneren als reactie op het verzoek.
Al deze annotaties zijn stereotiepen die @Component uitbreiden, en stellen Spring in staat om deze klassen automatisch te detecteren en te registreren als beans in de applicatiecontext. Hun belangrijkste verschil is semantisch, wat de rol van de klasse in de architectuur aangeeft. Spring kan deze annotaties gebruiken om specifieke functies toe te passen op de lagen, bijvoorbeeld:
- Spring Data JPA scant automatisch klassen met
@Repositoryom repository-implementaties te maken. - Spring MVC gebruikt
@Controllerom URL-verzoeken te koppelen aan controller-methoden.