Spring : BeanFactory dan BeanDefinition – Dasar-dasar

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Referensi : http://docs.spring.io/spring/docs/1.2.9/reference/beans.html

BeanFactory

BeanFactory adalah kontainer sebenarnya yang menginstansiasi, mengkonfigurasi dan memanage sejumlah beans. Beans ini umumnya berkolaborasi satu sama lain, dan karenanya memiliki ketergantungan/dependency antar mereka. Dependency ini dicerminkan didalam data konfigurasi yang digunakan oleh BeanFactory (meskipun beberapa dependency mungkin tidak tampak sebagai data konfigurasi, tetapi menjadi sebuah fungsi dari interaksi programatik antara beans saat runtime).

Suatu BeanFactory direpresentasikan oleh interface org.springframework.beans.factory.BeanFactory, dimana ada banyak implementasi. Implementasi BeanFacetory sederhana yang paling sering digunakan adalah org.springframework.beans.factory.xml.XmlBeanFactory. (Ini sebaiknya dihitung dengan pengingat bahwa ApplicationContexts adalah sebuah subclass dari BeanFactory, dan kebanyakan pengguna pada akhirnya menggunakan varian XML ApplicationContext)
Meskipun  untuk kebanyakan skenario, hampir semua kode pengguna dimanage yang dimanage oleh BeanFactory tidak harus memberikan perhatian pada BeanFactory, BeanFactory juga tidak perlu diinstasiasi sedemikian rupa. Hal tersebut dapat terjadi secara eksplisit pada kode yang dibuat oleh pengguna seperti :

Resource res = new FileSystemResource("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);

atau


ClassPathResource res = new ClassPathResource("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);

atau


ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(
        new String[] {"applicationContext.xml", "applicationContext-part2.xml"});

// tentu, sebuah ApplicationContext hanyalah sebuah BeanFactory
BeanFactory factory = (BeanFactory) appContext;

 

About Reza Ervani 387 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.