subrutin
a sequence of programmer life

Advertisement

Memahami Implementasi Application Context pada Spring Framework

1 964

Jika pembaca telah mengikuti tulisan sebelumnya yang berjudul Membuat Program Pertama dengan Spring Framework (Bagian -2). Penulis sempat menyinggung tentang interface ApplicationContext yang merupakan jantung dari framewok ini.

Advertisement

Interface ApplicationContext sendiri memiliki beberapa  implementasi yang dapat digunakan sesuai kebutuhan aplikasi, beberapa diantaranya adalah sebagai berikut

  • ClassPathXmlApplicationContext : Ini adalah implementasi yang digunakan pada pembahasan yang lalu, sekaligus paling sederhana, karena hanya memuat file – file  XML yang berlokasi di classpath
  • AnnotationConfigApplicationContext : adalah implementasi ApplicationContext yang membaca konfigurasi berbasis java.
  • AnnotationConfigWebApplicationContext: Membaca aplication context dari satu atau lebih konfigurasi java-based pada aplikasi web.
  • FileSystemXmlApplicationContext: Hampir sama dengan ClassPathXMLApplicationContext, namun bedanya file xml yang dimuat berada di lingkup file system
  • XmlWebApplicationContext: Sebagaimana namnya, implementasi ini hampir sama dengan AnnotationConfigWebApplicationContext, yang memuat application context untuk aplikasi web, namun format file yang dimuat adalah XML

Advertisement

Penulis akan membahas beberapa diantara penggunaan implementasi dari interface ApplicationContext untuk aplikasi web pada beberapa artikel lain. Untuk saat ini, penulis akan membahas perbedaan penggunaan FileSystemXmlApplicationContext  dengan ClassPathXmlApplicationContext. Perhatikan pada contoh  di artikel yang berjudul Membuat Program Pertama dengan Spring Framework (Bagian -2), dimana pada class App digunakan ClassPathXmlApplicationContext pada baris 21

ApplicationContext appCtx = new ClassPathXmlApplicationContext("applicationContext.xml");

Programmer dapat menggantinya dengan menggunakan FileSystemXmlApplicationContextmenjadi sebagai berikut

ApplicationContext appCtx = new FileSystemXmlApplicationContext("D:/akademi/halo-spring-2/src/main/resources/applicationContext.xml");

Dalam konteks ini, penulis menyimpan file ApplicationContext di folder D:/akademi/halo-spring-2/src/main/resources/applicationContext.xml, pembaca dapat mengubahnya sesuai path absolut dimana file XML disimpan di sistem komputer yang digunakan

Jika konfigurasi yang dibuat adalah java-based dan bukan XML, maka programmer dapat menggunakan AnnotationConfigApplicationContext menjadi sebagai berikut

ApplicationContext appCtx = new AnnotationConfigApplicationContext(AppConfig.class);

Dimana class AppConfig merupakan class konfigurasi berbasis Java. Pembaca dapat melihat source code dari penggunaan AnnotationConfigApplicationContext pada tautan ini

Advertisement

  • Konfigurasi berbasis XML atau Java?

Sebagaimana pembaca ketahui bahwa ada dua cara menuliskan konfigurasi bean pada Spring secara eksplisit, yaitu

  • Konfigurasi eksplisit berbasis XML
  • Konfigurasi eksplisit berbasis Java

Sebenarnya ada satu konfigurasi tambahan lagi yang merupakan konfigurasi implisit menggunakan metode Implicit bean discovery dan automatic wiring. Dengan metode ini programmer mebiarkan Spring yang  mencari sendiri bean – bean mana saja yang dikonfigurasi dan otomatis meng-inject-nya ke Bean yang memerlukan.

Mana yang seharusnya dipilih sebenarnya ada pada preferensi masing – masing programmer apakah lebih menyukai penulisan konfigurasi berbasis java atau XML, atau mungkin memadupadankan semua cara penulisan tersebut.  Masing – masing cara memiliki kelebihan dan kekurangannya masing – masing.

Dalam prakteknya nanti ketika programmer membuat project untuk mesin production. Subrutin merekomendasikan menggunakan pilihan ketiga yaitu mengandalkan  konfigurasi implisit, selama itu dapat dicapai dengan konfigurasi implisit (subrutin akan membahasnya pada artikel yang lain tentang autowired). Sisanya, dapat digunakan kedua pendekatan berbasis XML ataupun Java, semua terserah pada programmer

advertisement

Get real time updates directly on you device, subscribe now.

1 Komen
  1. Johan berkata

    Ayo dong mas, bahas yang autowired nanggung ini……
    😀

Tinggalkan pesanan

Alamat email anda tidak akan disiarkan.