Middle
Kuo skiriasi Spring anotacijos Repository, Component, Controller ir Service?
sobes.tech AI
Atsakymas iš AI
Šios anotacijos yra stereotipinės anotacijos Spring komponentams:
@Component: Pagrindinė anotacija bet kuriai komponentai, kurią valdo Spring IoC konteineris. Laiko, kad klasė yra bendras programos komponentas.@Repository: Speciali anotacija duomenų operacijoms (DAO) vykdyti klasėse. Spring teikia papildomas galimybes, tokias kaip JDBC išimčių automatinis vertimas į Spring DataAccessException.@Service: Speciali anotacija verslo logiką turinčioms klasėms. Nurodo, kad klasė yra verslo logikos lygio paslauga.@Controller: Speciali anotacija, naudojama kaip valdikliai web sluoksnyje. Paprastai naudojama Spring MVC, tvarkyti įeinančius web užklausas.
Visos šios anotacijos yra meta-anotacijos @Component, tai reiškia, kad bet kuri klasė, pažymėta bet kuria iš jų, bus laikoma Spring kaip komponentas. Pagrindinis skirtumas yra semantikoje ir specializuotoje funkcionalumo, kurį Spring gali suteikti kiekvienai iš jų.
// Pavyzdys, kaip naudoti `@Component`
@Component
public class MyGenericComponent {
// bendros funkcijos
}
// Pavyzdys, kaip naudoti `@Repository`
@Repository
public class UserRepository {
// duomenų bazės operacijos
}
// Pavyzdys, kaip naudoti `@Service`
@Service
public class UserService {
// verslo logika
}
// Pavyzdys, kaip naudoti `@Controller`
@Controller
public class UserController {
// web užklausų apdorojimas
}