8-modul · 1-dars: IoC · DI · Bean

Daraja: Ilg'or

IoC · DI · Bean. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi IoC · DI · Bean tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Spring obyekt yaratish, ularning bog'lanishi, tranzaksiya va web infratuzilmasini bir xil usulda boshqarishga yordam beradi. Core/Beans/Context, AOP, JDBC/Transaction va Web/MVC modullari muammolarni ajratadi. Jakarta EE yomon degan hukm emas: Spring tanlovi konfiguratsiya, ekotizim va loyiha ehtiyojiga bog'liq. IoC boshqaruvni frameworkka berish; DI obyektga kerakli hamkorni tashqaridan uzatishdir. Constructor injection majburiy dependencylarni aniq qiladi, setter injection ixtiyoriy sozlashga mos. Spring boshqaradigan obyekt bean deyiladi. @ComponentScan componentlarni topadi, @Configuration ichidagi @Bean metodlari explicit konfiguratsiya beradi. XML orqali ham bean e'lon qilish mumkin. @Autowired tur bo'yicha tanlaydi, @Qualifier bir nechta nomzodni ajratadi; Jakarta @Inject/@Named ham mos muhitda ishlatiladi. Conditional bean shart bajarilganda yaratiladi; @PropertySource konfiguratsiya manbasini qo'shadi. init-method yaratishdan keyin, destroy-method container yopilishida ishlaydi. Konstruktor ichida tarmoq chaqirib startupni qotirish o'rniga lifecycle va timeoutni boshqaring.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@org.springframework.stereotype.Service
class StudyService {
  private final StudyRepository repository;
  StudyService(StudyRepository repository) { this.repository = repository; }
}
// StudyRepository uchun bean ham e'lon qilingan bo'lishi kerak.

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-08

Interaktiv ko'rinish (viktorina, izohlar, tarix)