Dependency Injection Spring Boot

Beranda » Java » Spring Boot » Dependency Injection Spring Boot

Dependency Injection di Spring Boot dapat dilakukan dengan beberapa cara, tiga cara yang umum digunakan untuk melakukan Dependency Injection, antara lain : field injection, setter injection dan contructor injection. Artikel kali ini hanya akan memberikan contoh-contoh singkat atau code sinppet jenis-jenis dependency injection, untuk contoh latihannya dapat dilihat di Latihan Dependency Injection

Field Injection

field injection dilakukan langsung pada field terkait yang ingin kita inject dengan menggunakan anotasi @Autowired. Penggunaan field injection tidak direkomendasikan. Silakan gunakan contructor injection atau setter injection. filed injection menggunkan reflection untuk melakukan inject sehingga performanya menjadi lebih lambat.

@Controller
public class CodingduluajaController {
    @Autowired    
    private HalloDuniaService halloDuniaService;
}

Setter Injection

setter injection merupakan metode inject dengan memanfaatkan setter untuk melakukan inject terhadap field yang kita inginkan. Pada setter di tambahkan anotasi @Autowired.

@Controller
public class CodingduluajaController {

    private HalloDuniaService halloDuniaService;
    
    @Autowired    
    public void setHalloDuniaService(HalloDuniaService halloDuniaService) {
        this.halloDuniaService = halloDuniaService;
    }

}

Contructor Injection

contructor injection menggukan contructor untuk melakukan inject. dan penggunakan contructor injection ini tidak memerlukan anotasi @Autowired.

@Controller
public class CodingduluajaController {

    private HalloDuniaService halloDuniaService;
    
    public CodingduluajaController(HalloDuniaService halloDuniaService) {
        this.halloDuniaService = halloDuniaService;
    }
}

Kesimpulan

Penggunaan contructor injection atau setter injection lebih disarankan dari pada menggunakan field injection pada aplikasi, namun untuk unit test dapat menggunakan field injection.

Kategori : Java, Spring Boot
Oleh : budiyono, diterbitkan : disunting :