Apa itu Injeksi Ketergantungan? - Tahu Bagaimana Menerapkan Injeksi Ketergantungan



Artikel tentang Apa itu Injeksi Ketergantungan adalah panduan komprehensif untuk Injeksi Ketergantungan dengan Hands-On di Spring Boot.

Di dunia di mana kita bekerja dengan bahasa pemrograman setiap hari, kita semua cenderung mencari metode dan trik untuk membuat hidup kita mudah. Nah, Dependency Injection adalah salah satu teknik yang bertujuan untuk membantu pengembang kode dengan mudah dengan menyediakan dependensi dari objek lain. Dalam artikel tentang Apa itu Injeksi Ketergantungan, saya akan membantu Anda memahami teknik ini secara rinci.

Topik berikut akan dibahas dalam artikel ini:





Jadi, mari kita mulai dengan artikel ini.

Apa itu Injeksi Ketergantungan?

Dependency Injection adalah kemampuan suatu objek untuk mensuplai dependensi objek lain.



Sekarang, saya cukup yakin, Anda mungkin tidak memahami apa pun dengan definisi teknis di atas. Jadi, izinkan saya menghilangkan kebingungan untuk Anda.

Ketika Anda mendengar istilah ketergantungan, apa yang muncul di benak Anda?

Jelas, sesuatu yang mengandalkan sesuatu yang lain untuk mendapatkan dukungan, bukan?



Itu sama, dalam kasus pemrograman juga.

Ketergantungan dalam pemrograman adalah pendekatan di mana kelas menggunakan fungsionalitas tertentu dari kelas lain. Jadi, misalnya, jika Anda mempertimbangkan dua kelas A dan B, dan mengatakan bahwa kelas A menggunakan fungsionalitas kelas B, maka tersirat bahwa kelas A memiliki ketergantungan kelas B. Sekarang, jika Anda membuat kode di Java maka Anda harus tahu itu, kamu harusmembuat instance kelas B sebelum objek digunakan oleh kelas A.

Jenis Kelas - Apa itu Injeksi Ketergantungan - Edureka

Jadi, jika saya sekarang harus mendefinisikan Injeksi Ketergantungan untuk Anda, maka proses membuat objek untuk beberapa kelas lain dan membiarkan kelas secara langsung menggunakan ketergantungan disebut Injeksi Ketergantungan. Ini terutama memiliki tiga kelas yang terlibat:

  • Kelas Klien: Ini adalah kelas dependen dan bergantung pada kelas Service.

    instal php di windows 7
  • Kelas Layanan: Kelas ini menyediakan layanan untuk kelas klien.

  • Kelas Injector: Kelas ini bertanggung jawab untuk memasukkan objek kelas layanan ke dalam kelas klien

Sekarang, setelah Anda memahami, apa itu Injeksi Ketergantungan, izinkan saya selanjutnya membawa Anda melalui prinsip yang menjadi dasar Injeksi Ketergantungan.

Pembalikan Kontrol

Seperti yang telah saya sebutkan di atas Pembalikan Kontrol adalah prinsip yang menjadi dasar, Injeksi Ketergantungan dibuat. Juga, seperti namanya, Inversion of Control pada dasarnya digunakan untuk membalikkan berbagai jenis tanggung jawab tambahan kelas daripada tanggung jawab utama.

Jika saya harus menjelaskan kepada Anda dalam istilah yang lebih sederhana, maka pertimbangkan sebuah contoh, di mana Anda memiliki kemampuan untuk memasak. Menurut prinsip IoC, kontrolnya bisa dibalik, jadi alih-alih memasak makanan, Anda bisa langsung memesan dari luar, di mana Anda menerima makanan di depan pintu Anda. Jadi, proses makanan yang diantarkan kepada Anda di depan pintu Anda disebut Pembalikan Kontrol.

Anda tidak harus memasak sendiri, sebaliknya, Anda dapat memesan makanan dan membiarkan eksekutif pengiriman yang mengantarkan makanan untuk Anda. Dengan cara ini, Anda tidak perlu mengurusi tanggung jawab tambahan dan hanya fokus pada pekerjaan utama.

Sekarang, setelah Anda mengetahui prinsip di balik Injeksi Ketergantungan, izinkan saya membawa Anda melalui jenis-jenis Injeksi Ketergantungan.

Jenis Injeksi Ketergantungan

Terutama ada tiga jenis Injeksi Ketergantungan:

  • Injeksi Konstruktor: Dalam jenis injeksi ini, injektor memasok ketergantungan melalui konstruktor kelas klien.

  • Injeksi Setter / Injeksi Properti: Dalam jenis injeksi ini, metode injektor menyuntikkan ketergantungan ke metode penyetel yang diekspos oleh klien.

  • Injeksi Antarmuka: Dalam jenis injeksi ini, injektor menggunakan Antarmuka untuk memberikan ketergantungan ke kelas klien. Klien harus mengimplementasikan antarmuka yang akan mengekspos filemetode penyetelyangmenerima ketergantungan.

Sampai sekarang, saya harap Anda telah memahami fakta bahwa Dependency Injection bertanggung jawab untuk membuat objek, memahami kelas mana yang memerlukan objek tersebut dan akhirnya menyediakan kelas tersebut dengan objek. Jadi, pada catatan itu, mari kita lihat manfaat Dependency Injection.

Manfaat Injeksi Ketergantungan

Sebelum saya menuliskan manfaat Injeksi Ketergantungan, izinkan saya menjelaskan kepada Anda kebutuhan injeksi ini pada tingkat industri, untuk membantu Anda memahami manfaat dengan lebih baik.

Pertimbangkan sebuah skenario, di mana Anda memiliki Kelas Email, yang tanggung jawabnya hanya menangani email yang diterima. Sekarang, kelas ini akan memiliki objek seperti 'Ke alamat email', 'Dari alamat email', 'Subjek dan Isi email'.

Sekarang, jika perusahaan ingin menyimpan pesan teks dan audio, menurut Anda apakah kelas ini dapat menyimpan pesan tersebut?

Nah, jawabannya tidak?

Itu karena, Kelas Email tidak dapat menangani parameter teks dan pesan audio. Dalam kasus seperti itu, Anda harus membuat ulang kelas tersebut. Sekarang, membuat ulang kelas adalah pekerjaan yang cukup rumit, terutama jika Anda harus melakukannya secara teratur. Sebaliknya, jika Anda menggunakan Injeksi Ketergantungan, Anda dapat mengubah objek saat run-time. Jadi, dengan cara ini, Anda tidak perlu membuat ulang kelas yang selanjutnya membantu Anda dalam banyak hal.

Nah, kalau saya harus merangkum manfaat suntik ketergantungan, berikut ini manfaatnya:

Baiklah, sekarang setelah Anda mengetahui manfaat dari Injeksi Ketergantungan, mari kita lanjutkan dan lihat cara menerapkan Injeksi Ketergantungan menggunakan Spring Boot.

Bagaimana Menerapkan DI menggunakan Spring Boot?

Langkah 1: Bukalah Eclipse IDE dan membuat Aplikasi Spring Boot dengan mengklik kanan dan memilih Proyek Pemula Musim Semi . Kemudian sebutkan nama proyek dan klik Selesai .

Untuk mendapatkan Spring Starter Project, Anda harus menginstal Spring Tool Suite dari Eclipse Marketplace. Jika Anda tidak menginstal Spring Too Suite, Anda dapat merujuk ke artikel saya di .

Anda secara otomatis akan melihat bahwa file aplikasi dibuat seperti di bawah ini.

Langkah 2: Selanjutnya, buat kelas dalam paket yang sama. Untuk melakukan itu klik kanan file -> pilih Kelas dan sebutkan nama kelas. Kemudian klik Selesai . Ini akan membuat file Kelas mengajukan. Di sini saya telah membuat kelas Pelanggan. Lihat di bawah.

Langkah 3: Setelah itu, mari kita masukkan beberapa properti untuk kelas tersebut. Jadi, katakanlah, kami menyertakan ID Pelanggan, Nama Pelanggan dan Nama kursus. Sebutkan kode di bawah ini.

paket com.example.demo // nama paket kelas publik Pelanggan {private int custid private String custname private String coursename}

Langkah 3.1: Setelah Anda selesai dengan itu, Anda harus melakukannya menghasilkan metode Getter dan Setter untuk properti ini. Untuk melakukan itu, pilih properti ini dan klik kanan. Lalu pilih Sumber -> Hasilkan metode Getter dan Setter.

Kode Anda sampai sekarang harus seperti berikut:

cara cast ganda ke int java
paket com.example.demo public class Pelanggan {private int custid private String custname private String coursename public int getCustid () {return custid} public void setCustid (int custid) {this.custid = custid} public String getCustname () {return custname } public void setCustname (String custname) {this.custname = custname} public String getCoursename () {return coursename} public void setCoursename (String nama pengadilan) {this.coursename = coursename}}

Sekarang, pertimbangkan skenario di mana Anda harus membuat objek untuk Pelanggan dan Anda tidak ingin melakukannya secara manual. Dalam skenario seperti itu, Anda kemudian harus menggunakan Injeksi Ketergantungan, untuk mendapatkan objek kapan pun Anda membutuhkannya.

Jadi, selanjutnya mari kita lihat bagaimana kita bisa mencapai hal yang sama.

Langkah 4: Pertama, ubah garis lari dalam file kelas aplikasi sebagai berikut:

ConfigurableApplicationContext context = SpringApplication.run (DemoApplication.class, args)

Catatan: Jika Anda mendapatkan kesalahan impor yang berikut ini:

impor org.springframework.boot.SpringApplication impor org.springframework.boot.autoconfigure.SpringBootApplication impor org.springframework.context.ConfigurableApplicationContext

Baris kode di atas ini akan mengembalikan objek pada saat dieksekusi. Sekarang tambahkan kode berikut ke dalam file aplikasi.

pelanggan c = context.getBean (customers.class)

Baris di atas, akan memberi tahu kompiler untuk mengembalikan objek dari kelas pelanggan. Lihat di bawah.

Langkah 4.1: Sekarang, untuk memeriksa apakah itu berfungsi atau tidak, Anda dapat kembali ke kelas Pelanggan dan tambahkan metode sebagai berikut:

public void display () {System.out.println ('Objek Berhasil Dikembalikan')}

Metode ini akan menampilkan output 'Object Returned Successfully' pada eksekusi yang berhasil.

Langkah 4.2: Selanjutnya, Anda harus kembali ke file aplikasi dan menyebutkan yang berikut:

c. tampilan ()

Melalui ini, Anda memanggil objek kelas Pelanggan dengan referensi metode tampilan. Lihat gambar di bawah ini untuk kode kelas Aplikasi sampai sekarang:

Sekarang, jika Anda menjalankan proyek, Anda akan melihat file pengecualian dari jenis kacang tidak memenuhi syarat . Ini karena kelas pelanggan yang telah Anda tentukan bukanlah Spring Bean, yaitu bukan Spring Object. Lihat di bawah.

Kode fibonacci c ++

Langkah 4.3: Jadi, untuk memberi tahu Spring Container itu, kita membutuhkan objek dari Kelas pelanggan. Untuk melakukan itu, Anda perlu menyebutkan @ Anotasi komponen , di kelas Pelanggan. Kode di kelas Pelanggan harus seperti di bawah ini:

paket com.example.demo import org.springframework.stereotype.Component @Component public class Pelanggan {private int custid private String custname private String coursename public int getCustid () {return custid} public void setCustid (int custid) {this.custid = custid} public String getCustname () {return custname} public void setCustname (String custname) {this.custname = custname} public String getCoursename () {return coursename} public void setCoursename (String nama pengadilan) {this.coursename = coursename} public void display () {System.out.println ('Objek Berhasil Dikembalikan')}}

Lalu, saat Anda menyebut pelanggan c = context.getBean (customers.class) kompilator akan memeriksa apakah ada kacang pelanggan yang tersedia di wadah atau tidak.

Jika Bean tersedia, maka kerangka kerja Spring memasukkan objek pelanggan ke dalam aplikasi Anda. Jadi, pada dasarnya, objek ini dibuat dengan framework Spring, yang selanjutnya dapat digunakan dalam aplikasi.

Jadi, Jika saya menjalankan proyek ini sekarang, Anda akan melihat output yang Object Returned Successfully. Lihat di bawah.

Ini pada dasarnya adalah bagaimana Anda dapat menerapkan Injeksi Ketergantungan.

Contoh: Injeksi Ketergantungan Menggunakan Autowired Annotation

Saya harap Anda telah memahami cara kerja Injeksi Ketergantungan di Spring Boot. Sekarang, mari kita memperluas contoh ini dan lebih jauh melihat bagaimana kelas yang bergantung pada kelas lain menggunakan fungsionalitas kelas itu di Spring Boot.

Langkah 1: Buat yang baru file kelas , lagi klik kanan pada paket dan dengan memilih Baru -> Kelas. Sekarang, sebutkan nama kelas seperti di bawah ini dan klik Selesai.

Langkah 2: Selanjutnya, mari kita masukkan beberapa properti untuk kelas. Jadi, katakanlah, kami menyertakan TechID, Techname. Sebutkan kode di bawah ini.

paket com.example.demo teknologi kelas publik {private int techid private String techname}

Langkah 2.1: Setelah Anda selesai dengan itu, buat file Metode pengambil dan penyetel untuk properti ini dengan mengklik kanan file, lalu pilih Sumber -> Hasilkan metode Getter dan Setter.

Langkah 3: Sekarang, katakanlah, kita harus membuat metode yang mencetak ' Berhasil “. Untuk melakukan itu sebutkan kode:

public void tech () {System.out.println ('Berhasil')}

Kode Anda sampai sekarang akan terlihat seperti di bawah ini:

paket com.example.demo public class Teknologi {private int techid private String techname public int getTechid () {return techid} public void setTechid (int techid) {this.techid = techid} public String getTechname () {return techname} public void setTechname (String techname) {this.techname = techname} public void tech () {System.out.println ('Successful')}}

Langkah 4: Sekarang, untuk memanggil tech () dalam kelas pelanggan , Anda harus membuat objek kelas teknologi. Jadi sebutkan baris kode berikut di kelas pelanggan:

Techdetail teknologi swasta

Langkah 4.1: Setelah Anda selesai dengan itu, buat file Metode pengambil dan penyetel untuk properti ini oleh mengklik kanan pada file tersebut lalu pilih Sumber -> Hasilkan metode Getter dan Setter.

Langkah 5: Selanjutnya, untuk menggunakan tech () , Anda harus menyebutkan techdetail.tech () di bawah metode tampilan kelas pelanggan . Juga, untuk memastikan bahwa objek techdetail adalah sebutan yang dipakai @ Anotasi komponen adalah Kelas teknologi. Lihat di bawah.

Sekarang, saat Anda menjalankan proyek ini, Anda akan melihat file Pengecualian Pointer Null . Ini karena sekarang Kelas pelanggan bergantung pada kelas Teknologi, namun tidak mengetahui keberadaan kelas Teknologi .

Jadi, untuk memungkinkan Pelanggan mengenali kelas Teknologi, Anda harus memasukkan @ Anotasi yang disyaratkan di kelas Pelanggan. Kode terakhir kelas pelanggan Anda harus sebagai berikut:

paket com.example.demo import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component @Component public class Pelanggan {private int custid private String custname private String coursename @Autowired private Technologies techdetail public Technologies getTechdetail ( ) {return techdetail} public void setTechdetail (Teknologi techdetail) {this.techdetail = techdetail} public int getCustid () {return custid} public void setCustid (int custid) {this.custid = custid} public String getCustname () {return custname } public void setCustname (String custname) {this.custname = custname} public String getCoursename () {return coursename} public void setCoursename (String namamename) {this.coursename = coursename} tampilan public void () {System.out.println ( 'Objek Berhasil Dikembalikan') techdetail.tech ()}}

Setelah Anda menjalankan file-file ini, Anda akan melihat outputnya sebagai Objek Kembali Berhasil dan Berhasil, yang menyiratkan bahwa Ketergantungan kelas kami telah terpenuhi. Lihat di bawah.

Sekarang setelah Anda selesai dengan artikelnya, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di “Apa itu Injeksi Ketergantungan? ”Artikel dan kami akan menghubungi Anda kembali secepatnya.