Middle
Care este diferența dintre adnotările Repository, Component, Controller și Service în Spring?
sobes.tech AI
Răspuns de la AI
Aceste adnotări sunt adnotări stereotip pentru componentele Spring:
@Component: Adnotare de bază pentru orice componentă gestionată de containerul IoC al Spring. Presupune că clasa este o componentă generală a aplicației.@Repository: Adnotare specială pentru clasele care efectuează operații cu date (DAO). Spring oferă funcționalități suplimentare, cum ar fi traducerea automată a excepțiilor JDBC în Spring DataAccessException.@Service: Adnotare specială pentru clasele care conțin logică de business. Indică faptul că clasa este un serviciu la nivel de logică de business.@Controller: Adnotare specială pentru clasele utilizate ca controlori în stratul web. De obicei, utilizată în Spring MVC pentru gestionarea cererilor web intrante.
Toate aceste adnotări sunt meta-adnotări pentru @Component, ceea ce înseamnă că orice clasă adnotată cu oricare dintre ele va fi considerată de Spring ca un component. Diferența principală constă în semantică și în funcționalitatea specializată pe care Spring o poate oferi pentru fiecare.
// Exemplu de utilizare a @Component
@Component
public class MyGenericComponent {
// funcționalitate generală
}
// Exemplu de utilizare a @Repository
@Repository
public class UserRepository {
// operațiuni cu baza de date
}
// Exemplu de utilizare a @Service
@Service
public class UserService {
// logică de business
}
// Exemplu de utilizare a @Controller
@Controller
public class UserController {
// procesarea cererilor web
}