Junior
294
Mis on erinevus @Service, @Repository ja @Controller annotatsioonide vahel Springis?
Vastus AI-lt
sobes.tech AI
Need on Springi annotatsioonid, mida kasutatakse klasside märkimiseks kui komponentideks teatud kihtides rakenduses:
@Service: Kasutatakse klasside jaoks, mis esindavad äriloogikat. Tavaliselt sisaldavad meetodeid, mis töötlevad andmeid, mis on saadud hoidmise kihilt.@Repository: Kasutatakse klasside jaoks, mis suhtlevad andmete salvestamise kihiga (näiteks andmebaas). Pakuvad meetodeid andmetele juurdepääsuks.@Controller: Kasutatakse klasside jaoks, mis töötlevad sisenevaid HTTP-päringuid. Tavaliselt sisaldavad meetodeid, mis tagastavad vaate või andmed vastusena päringule.
Kõik need annotatsioonid on stereotüübid, mis laiendavad @Component-i, ja võimaldavad Springil automaatselt tuvastada ning registreerida need klassid bean'idena rakenduse kontekstis. Nende peamine erinevus on semantiline, mis näitab klassi rolli arhitektuuris. Spring võib kasutada neid annotatsioone, et rakendada spetsiifilisi funktsioone kihtidele, näiteks:
- Spring Data JPA skaneerib automaatselt klassid koos
@Repository, et luua repository implementatsioone. - Spring MVC kasutab
@Controller, et URL-päringud kaardistada kontrolleri meetoditele.