Struts vs Spring MVC
Struts framework adalah salah satu framework aplikasi web awal untuk mengembangkan aplikasi web Java EE. Spring adalah kerangka kerja aplikasi sumber terbuka. Beberapa waktu setelah pengenalan kerangka Spring, para pengembang menambahkan kerangka kerja MVC ke kerangka Spring, berharap untuk mengatasi beberapa keterbatasan yang mereka rasakan di Struts. Tetapi beberapa tahun kemudian, Struts2 (atau Struts versi 2) tiba, dan itu benar-benar berbeda dan kerangka aplikasi web yang sangat ditingkatkan. Sekarang, Struts dan Spring MVC banyak digunakan untuk mengembangkan aplikasi Java EE di dunia.
Apa itu Struts?
Struts (juga dikenal sebagai Apache Struts) adalah kerangka kerja open source lintas platform yang ditulis dalam Java, yang ditujukan untuk mengembangkan aplikasi web Java EE. Struts mendorong penggunaan arsitektur MVC (Model-View-Controller). Ini adalah perpanjangan dari Java Servlet API. Craig McClanahan adalah pencipta asli Struts. Awalnya dikenal sebagai Jakaratha Struts, dan dikelola di bawah Proyek Jakarta Apache Software Foundation. Rilis stabil saat ini adalah versi 2.2.3, yang dirilis pada Mei 2011. Ini dirilis di bawah Lisensi Apache 2.0. Kerangka kerja struts disebut kerangka kerja berbasis permintaan, dan terdiri dari tiga komponen utama: penangan permintaan, penangan respons, dan pustaka tag. Standar URI (Uniform Resource Identifier) dipetakan ke penangan permintaan. Penangan respons bertanggung jawab untuk mentransfer kontrol. Untuk membuat aplikasi interaktif dengan form, fitur yang ditawarkan oleh tag library dapat dimanfaatkan. Struts mendukung aplikasi REST dan berbagai teknologi seperti SOAP, AJAX, dll.
Apa itu Spring MVC?
Spring adalah kerangka kerja aplikasi sumber terbuka. Ini dikembangkan oleh Rod Johnson,, dan versi pertama dirilis pada tahun 2004. Spring 3.0.5 adalah versi terkini dari kerangka Spring. Ini dilisensikan di bawah lisensi Apache 2.0. Aplikasi Java apa pun dapat menggunakan fitur inti dari kerangka kerja Spring. Ada beberapa modul dalam kerangka Spring, dan MVC adalah salah satunya. Kerangka kerja Spring MVC bukan bagian dari rencana awal mereka. Faktanya, alasan pengembang Spring membuat kerangka kerja MVC mereka sendiri adalah untuk memberikan solusi atas apa yang mereka tunjukkan sebagai kekurangan dalam Struts (versi 1) dan kerangka kerja serupa lainnya. Secara khusus, mereka mengatakan bahwa mereka ingin mengatasi kurangnya pemisahan antara lapisan presentasi, lapisan penanganan permintaan, dan model. Spring MVC juga merupakan kerangka aplikasi web berbasis permintaan.
Apa perbedaan antara Struts dan Spring MVC?
Meskipun Spring MVC dan Struts adalah dua kerangka kerja aplikasi web populer yang digunakan untuk mengembangkan aplikasi web Java EE, keduanya memiliki perbedaan. Faktanya, Spring MVC dikembangkan untuk mengatasi beberapa keterbatasan di Struts (versi 1). Tetapi Struts2 adalah kerangka kerja yang sangat ditingkatkan daripada versi 1 (mereka bahkan tidak berbagi basis kode yang sama), dan oleh karena itu, Spring MVC dan Structs2 sangat sebanding.
Salah satu keuntungan utama Spring MVC adalah memungkinkan integrasi tanpa batas dengan banyak opsi tampilan seperti JSP/JSTL, Tiles, FreeMaker, Excel, PDF, dan JSON. Namun, tidak seperti Struts, Spring MVC tidak menyediakan dukungan AJAX bawaan (perlu menggunakan perpustakaan AJAX pihak ketiga).
Pada akhirnya, keduanya dianggap sebagai kerangka kerja yang sangat matang, dan memilih di antara keduanya tergantung pada preferensi pribadi. Penting untuk dicatat di sini bahwa jika ada perasaan negatif terhadap struts, itu hanya karena kekurangan yang ditemukan di Struts versi 1 (yang sekarang dianggap usang).