Belajar Spring Web MVC : “Web Framework” Untuk Aplikasi Web
Konsep dasar Spring Web MVC
Model-view-controller (alias disingkat MVC) adalah istilah dalam dunia software engineering yang merujuk pada sebuah pattern arsitektur yang memisahkan sebuah business services dengan object domain (disebut sebagai model) dan tampilan antarmuka pengguna (disebut sebagai view) yang interaksinya dijembatani oleh satu atau lebih controller. Dengan adanya pattern tersebut, programmer dapat mengubah antarmuka pengguna (User Interface) tanpa harus mengubah business logic dan object domain.
Pattern MVC ini sudah lama digunakan pada aplikasi java berbasis web dimana sebuah model mencangkup code pada level businesss seperti ( service bean, POJO, Enterprise Java Bean (EJB) dan seterusnya). Sedangkan view melibatkan teknologi seperti JSP dan teknologii lain yang serupa, dan controller menggunakan teknologi berbasis servlet
Sebuah request HTTP diterima oleh servlet (yang disebut sebagai controller atau action) yang merupakan komponen yang menangani setiap request. Komponen yang kemudian ini berinteraksi pada service-tier dan menggunakan object domain yang diperlukan. Di akhir, hasil dari pemrosesan akan ditampilkan oleh view. Lebih jelasnya, perhatikan diagram sebagai berikut
Diagram tersebut bekerja seperti berikut
- Request HTTP diterima oleh controller
- Controller akan melakukan pemrosesan, biasanya controller akan memanggil object service dan mengakses model ( dapat berupa query data, update ataupun insert berdasarkan jenis request)
- Model akan mengembalikan data yang diminta (jika request memerlukan data kembalian, seperti query ke database
- Berikutnya controller akan mengirim data ke view untuk mengenerate response (tampilan halaman)
- Setelah selesei, view akan mengembalikan render (dalam format HTML atau yang lain)
- Hasil render tersebut dikembalikan kepada client dalam bentuk Response HTTP
Dari sini, telah dipahami bahwa pattern MVC melakukan pemisahan tanggung jawab tugas masing – masing bagian sehingga memudahkan programmer dalam membangun hingga memantain aplikasi perangkat lunak yang dibangun
- Apa itu Spring Web MVC
Sebagaimana namanya, Spring Web MVC adalah framework mvc-centric (yang menggunakan pattern MVC) untuk membangun aplikasi web – yang merupakan salah satu dari modul yang dimiliki oleh Spring. Hal ini memungkinkan programmer dapat menggunakan Spring Container dan Spring Web MVC dalam satu perangkat lunak.
- Arsitektur Spring Web MVC
Aktor utama dari Framework Spring Web MVC adalah DispatcherServlet
atau sering sebut sebagai front controller, yang bertugas mencegat setiap request yang masuk untuk didaftarkan ke komponen yang menangani (controller). Setiap controller akan memanggil sebuah service dan memberikan kembalian berupa view mana yang akan ditampilkan oleh DispatcherServlet
. Lebih jelasnya digambarkan oleh diagram berikut
Secara konsep diagram tersebut memiliki tahapan sebagai berikut
- HTTP request yang masuk diterima oleh
DispatcherServlet
, kemudian meneruskannya ke controller yang bertanggungjawab menangani - HTTP request masuk ke controller diproses lebih lanjut, misalnya format data, validasi data form yang dikirim.
- Business Service, secara konsep akan menangani business logic dari aplikasi dan akan terhubung dengan layer database untuk melakukan query, insert atau update data.
- Hasil keluaran dari business service adalah data model yang kemudian diterima kembali oleh controller.
- Controller akan mengirimkan data yang diterima dari business service ke
DisptacherServlet
, dengan juga spesifikasi nama view mana yang bertugas menampilkan data tersebut. - View akan merender data dan kemudian mengembalikan hasil render tersebut kepada
DispactherServlet
untuk dijadikan response - Hasil render tersebut akan dikembalikan sebagai HTTP Response
- Alternatif dari Spring Web MVC
Terkadang banyak programmer masih suka membedakan antara Spring Web MVC dengan Spring (Spring Core alias Spring IoC). Spring Framework adalah framework untuk Inversion of Control dan dependency injection yang dapat digunakan untuk beragam jenis aplikasi, mulai dari berbasis web ataupun dekstop.
Sedangkan Spring Web MVC adalah framework yang digunakan untuk programmer membangun sebuah aplikasi berbasis web. Selain Spring Web MVC, programmer dapat menggunakan framework web lain misalnya Zk Java Web Framework, Apache Struts 2, Play, hingga PrimeFaces. Masing – masing framework web tersebut masih dapat menggunakan Spring IoC sebagai framework dependency injection
[…] Belajar Spring Web MVC : “Web Framework” Untuk Aplikasi Web […]