Skip to content

M07 · Bab 2± 50 menitDraf AI

IoC dan Dependency Injection

Tujuan belajar

  • Menjelaskan masalah new yang tersebar dan bagaimana Inversion of Control menyelesaikannya
  • Mendaftarkan bean dengan stereotype (@Component, @Service, @Repository, @RestController) dan @Configuration + @Bean
  • Memakai constructor injection dan menjelaskan kenapa lebih baik daripada field injection
  • Menangani beberapa implementasi satu interface dengan @Primary, @Qualifier, atau injeksi List
  • Memilih scope bean (singleton, prototype, request), menghindari state di singleton, dan memakai @PostConstruct

Prasyarat: Mengenal Spring Boot

Kuis

6 soal · lulus bila minimal 70% benar

1.Bean singleton Counter punya field int count dan method int next() { return ++count; }. OrderController dan InvoiceController sama-sama meng-inject Counter, lalu masing-masing memanggil next() sekali, berurutan. Nilai yang diterima InvoiceController?
2.Setelah menambahkan class WalletGateway (juga @Component implements PaymentGateway), aplikasi gagal start dengan pesan bahwa constructor CheckoutService required a single bean, but 2 were found. Perbaikan yang tepat?
3.Alasan utama tim menolak field injection (@Autowired private PaymentGateway gateway;) di code review?
4.Kamu ingin semua service memakai satu java.time.Clock yang sama agar waktu bisa dikendalikan saat test. Clock adalah class JDK yang tidak bisa kamu beri annotation. Cara mendaftarkannya sebagai bean?
5.Bean ReceiptBuilder ber-scope prototype di-inject lewat constructor ke CheckoutService (singleton). CheckoutService dipakai untuk tiga request berturut-turut. Berapa instance ReceiptBuilder yang dipakai CheckoutService?
6.Kapan method ber-@PostConstruct dijalankan?

Jawab semua soal dulu (0/6)