Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Referensi : http://docs.spring.io/spring/docs/1.2.9/reference/beans.html
Dua dari paket yang paling fundamental dan penting di Spring adalah org.springframework.beans dan org.springframework.context. Kode didalam paket-paket ini menyediakan dasar untuk fitur Inversion of Control di Spring (atau disebut juga DependencyInjection).
BeanFactory menyediakan suatu kemampuan mekanisme konfigurasi advance untuk memanage beans (object) dari berbagai kondisi, menggunakan secara potensial beragam jenis fasilitas storage.
ApplicationContext membangun diatas BeanFactor (itu adalah sebuah subclass) dan menambahkan fungsionalitas lain seperti integrasi yang lebih mudah dengan fitur AOP Spring, memberikan pesana pada penangan resource (resource handling) – untuk digunakan pada internazionalisasi – event propagation, mekanisme deklaratif untuk membuat ApplicationContext dan optional parent context, serta contexts yang spesifik untuk application-layer seperti WebApplicationContext – serta beragam pengembangan lainnya.
Secara singkat, BeanFactory menyediakan framework konfigurasi dan fungsionalitas dasar, sementara ApplicationContext menambahkan kapabilitas lebih banyak padanya, beberapa darinya mungkin lebih bersifat J2EE-sentrik dan enterprise-sentrik. Secara umum, sebuah ApplicationContext adalah superset lengkap dari BeanFactory, dan deskripsi apapun pada kemampuan dan prilaku BeanFactory seharusnya dipertimbangkan pula untuk diterapkan pada ApplicationContext.
Para pengguna seringkali tidak yakin manakah yang lebih baik untuk digunakan pada situasi tertentu, apakah BeanFactory atau ApplicationContext.
Secara normal saat membangun kebanyakan aplikasi di lingkungan J2EE, opsi terbaik adalah menggunakan ApplicationContext, dikarekan ia menawarkan semua fitur yang ada di BeanFactory dan menambahkannya padanya fitur-fitur tertentu, dan juga memperkenankan pendekatan yang lebih deklaratif untuk penggunaan beberapa fungsionalitas, yang umumnya diinginkan. Skenario penggunaan utama saat kita mungkin lebih ingin menggunakan BeanFactory adalah ketika penggunaan memory adalah hal yang harus diperhatikan (seperti pada applet dimana setiap kilobyte terakhir dihitung), dan kita tidak membutuhkan seluruh fitur yang ada pada ApplicationContext.
Serial ini akan membahas terkait BeanFactory dan ApplicationContext. Saat disebutkan BeanFactory, kita bisa saja selalu mengasumsikan bahwa penjelasan tersebut juga dapat diterapkan pada ApplicationContext. Saat fungsionalitas hanya tersedia pada ApplicationContext, pemaparan yang jelas akan disampaikan.
Bersambung insya Allah (reza@rumahilmu.or.id)
Leave a Reply