Sobes.tech
Junior

Spring-də @Service, @Repository və @Controller anotasiya arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Bunlar, tətbiqin müəyyən qatlamlarını komponent kimi göstərmək üçün istifadə olunan Spring qeydləridir:

  • @Service: Biznes məntiqini təmsil edən sinflər üçün istifadə olunur. Adətən, depo qatından alınan məlumatları emal edən metodlar ehtiva edir.
  • @Repository: Məlumatların saxlanma qatında (məsələn, verilənlər bazası) qarşılıqlı əlaqədə olan sinflər üçün istifadə olunur. Məlumatlara giriş üçün metodlar təmin edir.
  • @Controller: Gələn HTTP sorğularını işləyən sinflər üçün istifadə olunur. Adətən, sorğuya cavab olaraq görünüş və ya məlumatlar qaytaran metodlar ehtiva edir.

Bütün bu qeydlər @Component-i genişləndirir və Spring-ə bu sinfləri avtomatik olaraq aşkar edib tətbiq kontekstində bean kimi qeydiyyatdan keçirməyə imkan verir. Əsas fərqləri semantikdir və sinfin memarlıqdakı rolunu göstərir. Spring bu qeydləri qatlamlara xas funksiyaları tətbiq etmək üçün istifadə edə bilər, məsələn:

  • Spring Data JPA @Repository ilə işarələnmiş sinfləri avtomatik olaraq skan edir və repository tətbiqlərini yaradır.
  • Spring MVC URL sorğularını controller metodlarına uyğunlaşdırmaq üçün @Controller istifadə edir.