Bagi kalian yang terlanjur membuka halaman ini, ada baiknya kalian membaca halaman ini dulu ya. 😀 Sesuai janji saya di tulisan kali ini saya akan membahas bagaimana mengkonfigurasi Spring IoC tapi menggunakan annotation.
Annotation itu sendiri dilambangkan dengan simbol @ di depan nama keywordnya. Ok langsung saja, untuk dapat menggunakan annotation ini kita memerlukan library tambahan yaitu asm dan cglib. Asm bisa didownload di http://forge.ow2.org/projects/asm/ sedangkan untuk cglib bisa didownload di http://sourceforge.net/projects/cglib/files/. Kedua file .jar tersebut dibutuhkan untuk menjalankan @Configuration annotation.
Ok kalau sudah masukkan kedua library tersebut ke dalam project yang sudah dibuat sebelumnya. Lalu buatlah sebuah class PeopleConfig di dalam package com.maniakjava.main. Codenya seperti ini
package com.maniakjava.main; import com.maniakjava.domain.People; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class PeopleConfig { public @Bean People peopleBean() { return new People("Jakarta",23,"hello spring"); } }
Annotation @Configuration berfungsi untuk mengkonfigurasi suatu class yang akan digunakan oleh Spring IoC untuk mengkonfigurasi beans. @Bean sendiri berfungsi untuk mendeklarasikan suatu bean dari class People dengan nama bean peopleBean.
Kemudian buatlah sebuah class Main2 di dalam package com.maniakjava.main . Codenya seperti ini
package com.maniakjava.main; import com.maniakjava.domain.People; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main2 { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( PeopleConfig.class); People obj3 = (People) context.getBean("peopleBean"); obj3.sayHello(); } }
Sekarang jalankan class Main2 tersebut. Coba bandingkan lebih mudah yang mana untuk mengkonfigurasi Spring IoC, apakah dengan Xml atau Annotation ?
Sebagai informasi tag @Configuration juga bisa diganti dengan @Service. Keduanya memiliki fungsi yang sama.