Posts

Showing posts with the label IoC

IoC, DI, Container, dan Bean di Spring Dibangun dari Nol Spring Boot

Image
Dari Config ke Bean S aat belajar Spring Framework dan langsung mulai dari Spring Boot, ada kemungkinan besar kamu sudah sering pakai @Autowired dan @Service . Tapi begitu ada yang bertanya, "sebenarnya siapa sih yang membuat objek ini?", jawabanmu mungkin cuma, "pokoknya jalan aja sih". Itu wajar, kok. Spring Boot memang didesain untuk menyembunyikan kerumitan setup di balik satu baris SpringApplication.run() . Masalahnya, begitu suatu hari kamu ketemu bug soal bean yang gagal di-inject, circular dependency, atau bingung kenapa ada dua bean dengan tipe yang sama, kamu jadi tidak punya pegangan konsep untuk mulai debugging. Artikel ini mengajak kamu mundur selangkah: membangun aplikasi Spring secara manual, tanpa Spring Boot , supaya setiap konsep — IoC, DI, Container, Context, dan Bean — benar-benar terlihat dengan mata kepala sendiri, bukan cuma dihafal. Daftar Isi IoC (Inversion of Control) — Prinsipnya DI (Dependency Injection) — Cara Mewujudkan Io...

Mengenal Dependency Injection dan Contohnya Dalam Framework Spring

Image
Dependency Injection (DI) adalah sebuah konsep dalam pemrograman yang membantu mengelola dependensi atau ketergantungan antar objek. DI bekerja dengan memasukkan atau "menginjeksikan" dependensi yang diperlukan oleh suatu objek dari luar, alih-alih membuat objek tersebut menciptakan atau mengelola dependensinya sendiri. Ini memudahkan pengelolaan kode dan membuat aplikasi lebih fleksibel, terstruktur, dan mudah diuji, karena setiap komponen tidak tergantung langsung pada implementasi spesifik komponen lain. Dalam DI, biasanya ada tiga jenis teknik injeksi yang sering digunakan: Constructor Injection : Dependensi diberikan melalui konstruktor objek. Setter Injection : Dependensi disediakan melalui metode setter. Interface Injection : Objek menyediakan dependensinya melalui interface. Sebagai contoh di Java dengan Spring Framework @Service public class RedisService { private final RedisTemplate<String, Object> redisTemplate ; @Autowired public RedisService (Re...