Sobes.tech
Junior

Jaký je rozdíl mezi anotacemi @Service, @Repository a @Controller ve Springu?

sobes.tech AI

Odpověď od AI

Toto jsou anotace Spring používané k označení tříd jako komponenty určitých vrstev aplikace:

  • @Service: Používá se pro třídy, které představují obchodní logiku. Obvykle obsahují metody, které zpracovávají data získaná z vrstvy repozitáře.
  • @Repository: Používá se pro třídy, které komunikují s vrstvou ukládání dat (například databází). Poskytují metody pro přístup k datům.
  • @Controller: Používá se pro třídy, které zpracovávají příchozí HTTP požadavky. Obvykle obsahují metody, které vracejí pohled nebo data jako odpověď na požadavek.

Všechny tyto anotace jsou stereotypy, které rozšiřují @Component, a umožňují Springu automaticky detekovat a registrovat tyto třídy jako beany v kontextu aplikace. Jejich hlavní rozdíl je sémantický, ukazující na roli třídy v architektuře. Spring může tyto anotace používat k aplikaci specifických funkcí na vrstvy, například:

  • Spring Data JPA automaticky skenuje třídy s @Repository pro vytváření implementací repozitářů.
  • Spring MVC používá @Controller k mapování URL požadavků na metody kontroléru.