Sobes.tech
Middle

Care este diferența dintre adnotările Component, Repository și Service în Spring?

sobes.tech AI

Răspuns de la AI

Toate aceste adnotări sunt @Component specializate. Ele sunt utilizate pentru detectarea automată a componentelor Spring prin scanarea classpath-ului.

Principalele diferențe constau în semantică și utilizarea planificată:

  • @Component: Adnotare stereotipică generală pentru orice componentă Spring. Poate fi utilizată pentru clase care nu se încadrează în categorii mai specifice.
  • @Repository: Indică o clasă care îndeplinește rolul de depozit de date. Spring oferă o conversie automată a excepțiilor specifice accesului la date într-o ierarhie unificată de excepții Spring pentru clasele cu această adnotare.
  • @Service: Indică o clasă în stratul de servicii al aplicației. De obicei conține logica de afaceri a aplicației. Este utilizată pentru a îmbunătăți lizibilitatea codului și pentru o mai bună structurare a aplicației.
Anotare Scop Semantica
@Component Componentă generală Spring General, universal
@Repository Depozit de date Acces la date, DAO
@Service Strat de servicii, logică de afaceri Logică de afaceri, serviciu