Middle
Spring'da Repository, Component, Controller va Service annotatsiyalari orasidagi farq nima?
sobes.tech AI
AIdan javob
Bu anotasyonlar Spring komponentlari uchun stereotip anotatsiyalaridir:
@Component: Spring IoC konteyneri tomonidan boshqariladigan har qanday komponent uchun asosiy anotatsiya. Klass umumiy ilova komponenti deb hisoblanadi.@Repository: Ma'lumotlar bilan ishlovchi (DAO) sinflar uchun maxsus anotatsiya. Spring qo'shimcha imkoniyatlar, masalan, JDBC istisnolarini Spring DataAccessException ga avtomatik tarjima qilishni ta'minlaydi.@Service: Biznes mantiqini o'z ichiga olgan sinflar uchun maxsus anotatsiya. Klass biznes mantiq darajasidagi xizmat deb belgilaydi.@Controller: Veb qatlamida controller sifatida ishlatiladigan sinflar uchun maxsus anotatsiya. Odatda Spring MVC da kiruvchi veb so'rovlarni boshqarish uchun ishlatiladi.
Ushbu barcha anotatsiyalar @Component uchun meta-anotatsiyalar bo'lib, ular bilan belgilangan har qanday sinf Spring tomonidan komponent sifatida qabul qilinadi. Asosiy farq semantika va Spring har biri uchun taqdim eta oladigan maxsus funksionallikda yotadi.
// @Component dan foydalanish misoli
@Component
public class MyGenericComponent {
// umumiy funksionallik
}
// @Repository dan foydalanish misoli
@Repository
public class UserRepository {
// ma'lumotlar bazasi operatsiyalari
}
// @Service dan foydalanish misoli
@Service
public class UserService {
// biznes mantiq
}
// @Controller dan foydalanish misoli
@Controller
public class UserController {
// veb so'rovlarini boshqarish
}