Middle
Spring-də Repository, Component, Controller və Service annotasiyaları arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Bu anotasyonlar Spring komponentləri üçün stereotip anotasyonlardır:
@Component: Spring IoC konteyneri tərəfindən idarə olunan hər hansı bir komponent üçün əsas anotasyondur. Sınıfın ümumi tətbiq komponenti olduğunu fərz edir.@Repository: Məlumat əməliyyatları həyata keçirən (DAO) sinflər üçün xüsusi anotasyondur. Spring əlavə imkanlar təmin edir, məsələn, JDBC istisnalarının Spring DataAccessException-ə avtomatik çevrilməsi.@Service: Biznes məntiqini ehtiva edən sinflər üçün xüsusi anotasyondur. Sınıfın biznes məntiq səviyyəsində xidmət olduğunu göstərir.@Controller: Veb qatında istifadə olunan denetleyicilər üçün xüsusi anotasyondur. Adətən Spring MVC-də daxil olan veb sorğularını işləmək üçün istifadə olunur.
Bütün bu anotasyonlar @Component üçün meta-anotasyonlardır; bu, hər hansı birinin anotasiya ilə işarələnmiş sinfin Spring tərəfindən komponent kimi qəbul ediləcəyi deməkdir. Əsas fərq semantika və Spring-in hər biri üçün təmin edə biləcəyi ixtisaslaşdırılmış funksionallıqda yatır.
// @Component istifadə nümunəsi
@Component
public class MyGenericComponent {
// ümumi funksionallıq
}
// @Repository istifadə nümunəsi
@Repository
public class UserRepository {
// verilənlər bazası əməliyyatları
}
// @Service istifadə nümunəsi
@Service
public class UserService {
// biznes məntiqi
}
// @Controller istifadə nümunəsi
@Controller
public class UserController {
// veb sorğularının işlənməsi
}