Sobes.tech
Junior

Aký je rozdiel medzi anotáciami @Service, @Repository a @Controller v Spring?

sobes.tech AI

Odpoveď od AI

Toto sú anotácie Springu, ktoré sa používajú na označenie tried ako komponentov určitých vrstiev aplikácie:

  • @Service: Používa sa pre triedy, ktoré predstavujú obchodnú logiku. Zvyčajne obsahujú metódy, ktoré spracovávajú údaje získané z vrstvy repozitára.
  • @Repository: Používa sa pre triedy, ktoré komunikujú s vrstvou ukladania dát (napríklad databázou). Poskytuje metódy na prístup k dátam.
  • @Controller: Používa sa pre triedy, ktoré spracovávajú prichádzajúce HTTP požiadavky. Zvyčajne obsahujú metódy, ktoré vracajú pohľad alebo údaje ako odpoveď na požiadavku.

Všetky tieto anotácie sú stereotypy, ktoré rozširujú @Component, a umožňujú Springu automaticky detekovať a registrovať tieto triedy ako beany v kontexte aplikácie. Ich hlavný rozdiel je sémantický, ukazujúci na úlohu triedy v architektúre. Spring môže tieto anotácie používať na aplikáciu špecifických funkcií na vrstvy, napríklad:

  • Spring Data JPA automaticky skenuje triedy s @Repository na vytváranie implementácií repozitárov.
  • Spring MVC používa @Controller na mapovanie URL požiadaviek na metódy kontroléru.