Spring

Menikmati Fitur Baru Di spring 3.0

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… :)

Advertisement

Discussion

6 Responses to “Menikmati Fitur Baru Di spring 3.0”

  1. emang keren tuh spring3
    dah terjadi revolusi dari xml ke annotation kayaknya :D

    Posted by Eko Kurniawan Khannedy | January 5, 2010, 5:00 pm
  2. hai mas krissadewo,, makasih atas tulisannya ini sangant membantu sy untuk belajar spring3

    Posted by dimas yoga | February 2, 2010, 6:03 pm
  3. Mantab ya Spring 3. apalagi dah digabungin sama ZK 5

    Posted by jasoet | February 23, 2010, 12:16 am
  4. Makasi kak, aku coba sekarang..

    Posted by mudzakkirtoha | March 11, 2010, 3:03 pm
  5. Mantaf mas info nya… thx 4 share. baru belajar spring neh

    Posted by Arul | April 27, 2010, 11:27 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.