Lama dinanti nanti akhirnya pertengahan desember 2009 springteam meluncurkan spring 3.0. Ada beberapa perubahan dan penambahan fitur dari versi sebelumnya….
Salah satu fitur yang manarik perhatiaan saya untuk pertama kali dicoba adalah penambahan fitur javaConfig pada versi ini. Fitur ini merupakan sebuah fitur yang sudah lama dikembangkan oleh subproject dari spring sendiri yang disebut juga dengan Spring Java Configuration Project. Fitur ini mengizinkan kita untuk melakukan injection dengan menggunakan file java biasa dengan cara memanfaakan fitur yang tersedia dalam Java EE 5 yaitu annotation dan generics. Ok…. mari kita coba :
Semisal saya mempunyai dua buah kelas yaitu Mahasiswa dan Alamat, didalam kelas Mahasiswa terjadi dependency dengan kelas Alamat. Sekarang kita buat kelas Mahasiswa :
public class Mahasiswa {
private String nim;
private String nama;
private String jurusan;
private Alamat alamat;
//getter-setter
Kemudian kelas Alamat :
public class Alamat {
private String jalan;
private String kota;
private String propinsi;
//getter-setter
Untuk melakukan injection maka kita tinggal membuat sebuah kelas java biasa. Semisal dalam kasus ini file tersebut saya beri nama AppConfig :
@Configuration
public class AppConfig {
@Bean
public Mahasiswa mahasiswa() {
Mahasiswa mahasiswa = new Mahasiswa();
mahasiswa.setNim("001");
mahasiswa.setNama("Kris");
mahasiswa.setJurusan("SI");
mahasiswa.setAlamat(alamat());
return mahasiswa;
}
@Bean
public Alamat alamat() {
Alamat alamat = new Alamat();
alamat.setJalan("Merdeka");
alamat.setKota("Bantul");
alamat.setPropinsi("DIY");
return alamat;
}
}
Dapat dilihat pada kode java diatas, sebuah bean dapat diannotasikan menggunakan annotasi @Bean. Secara default nama dari bean tersebut akan sama dengan nama method yang dibuat dibawahnya. Didalam bean Mahasiswa kita juga dapat mereference ke dalam bean alamat. Kemudian kelas tersebut juga perlu diberi annotasi @Configuration untuk menandakan bahwa kelas tersebut akan diberlakukan sebagai file konfigurasi dari sebuah container.
Langkah terakhir adalah membuat sebuah kelas untuk mencoba kelas-kelas yang telah kita buat tadi ….
public class MainClass {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
Mahasiswa mahasiswa = (Mahasiswa) context.getBean(Mahasiswa.class);
System.out.println(mahasiswa.getNim());
System.out.println(mahasiswa.getNama());
System.out.println(mahasiswa.getJurusan());
System.out.println(mahasiswa.getAlamat().getJalan());
System.out.println(mahasiswa.getAlamat().getKota());
System.out.println(mahasiswa.getAlamat().getPropinsi());
}
}
Nah, hasilnya :
Dec 26, 2009 8:26:37 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@be2358: startup date [Sat Dec 26 08:26:37 PST 2009]; root of context hierarchy Dec 26, 2009 8:26:37 AM org.springframework.context.annotation.ConfigurationClassEnhancer enhance INFO: Successfully enhanced AppConfig; enhanced class name is: AppConfig$$EnhancerByCGLIB$$5eba6adb Dec 26, 2009 8:26:37 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1888759: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,appConfig,mahasiswa,alamat]; root of factory hierarchy 001 Kris SI Merdeka Bantul DIY BUILD SUCCESSFUL (total time: 0 seconds)
Mudah bukan… he…he…. ok, sampai disini dulu…
emang keren tuh spring3
dah terjadi revolusi dari xml ke annotation kayaknya
Posted by Eko Kurniawan Khannedy | January 5, 2010, 5:00 pmhai mas krissadewo,, makasih atas tulisannya ini sangant membantu sy untuk belajar spring3
Posted by dimas yoga | February 2, 2010, 6:03 pmIya.. sama-sama mas…
Posted by krissadewo | February 3, 2010, 5:28 amMantab ya Spring 3. apalagi dah digabungin sama ZK 5
Posted by jasoet | February 23, 2010, 12:16 amMakasi kak, aku coba sekarang..
Posted by mudzakkirtoha | March 11, 2010, 3:03 pmMantaf mas info nya… thx 4 share. baru belajar spring neh
Posted by Arul | April 27, 2010, 11:27 am