[Java] Belajar IoC dengan Spring Framework
Agak ketinggalan memang, saya baru saja berkenalan dengan spring 3 hari yang lalu, entah kenapa akhir-akhir ini saya malas belajar karena beberapa hal, yah mau tidak mau saya harus mulai belajar seperti biasa, saya tidak ingin terlunta-lunta ketika skripsi nanti :) Spring yang saya gunakan disini masih versi 2.5, padahal pada saat saya menulis artikel ini, Spring sudah mencapai versi 3.0. Sekali lagi saya telat dan tertinggal jauh karena terlalu banyak tidak serius dalam belajar :) hehe…
Disini saya belajar tentang Inversion Of Control (IoC)atau biasa di kenal dengan Dependency Injection (DI). Jadi kita tidak menginisialisasi object langsung dari class, tapi kita deklarasikan di tempat terpisah, yang kemudian di inject ke object di class tersebut. Ini mengurangi ketergantungan antar kode program. Fungsi sebenarnya cukup bisa lebih dari ini, tapi saya baru mengetahui sampai sini, hehehe….Kalau boleh jujur saya belum paham betul konsep ini, yah seperti biasa karena saya belajar otodidak jadi lebih baik langsung praktek dengan kode program saja.
Saya anggap anda sudah memiliki lib Spring ver. 2.5 dan dependency nya, seperti biasa pertama – tama kita buat pojo nya :
Mahasiswa.java
package com.kusandriadi.beans;
public class Mahasiswa {
private String nim;
private String nama;
private int umur;
private String jurusan;
public String getNim() {
return nim;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
public String getJurusan() {
return jurusan;
}
public void setJurusan(String jurusan) {
this.jurusan = jurusan;
}
@Override
public String toString() {
return String.format("Nim: %s\n" +
"Nama: %s\n" +
"Umur: %d\n" +
"Jurusan: %s",
this.nim, this.nama, this.umur, this.jurusan);
}
}
setelah itu buat file baru bernama context.xml , ini yang nantinya akan di inject ke Object yang berada di class Mahasiswa :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="mybean"
class="com.kusandriadi.beans.Mahasiswa"
p:nim = "0811503xxx"
p:nama = "kus andriadi"
p:umur = "20"
p:jurusan = "Teknik Informatika" />
</beans>Setelah itu kita tinggal membuat class mainnya :
package com.kusandriadi.main;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import com.kusandriadi.beans.Mahasiswa;
public class mainMahasiswa {
/**
* @param args
*/
public static void main(String[] args) {
XmlBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("context.xml"));
Mahasiswa demo= (Mahasiswa) beanFactory.getBean("mybean");
System.out.println(demo);
}
}Selesai, tinggal run program tersebut seharusnya bisa jalan, keluarannya akan seperti ini :
Mar 9, 2010 2:31:30 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [context.xml]
Nim: 0811503xxx
Nama: kus andriadi
Umur: 20
Jurusan: Teknik InformatikaNah coba perhatikan Object nim, nama, umur dan jurusan seharusnya akan menghasilkan null atau error jika tidak menggunakan spring karena object tersebut belum diinisialisasi :) tapi karena ini menggunakan spring, jadi object tersebut sudah diinject. Oke sampai disini dulu, semoga membantu, danĀ sampai jumpa di artikel selanjutnya :)


