Struts vs Spring MVC
Kerangka kerja Struts adalah salah satu kerangka kerja aplikasi web awal untuk mengembangkan aplikasi web Java EE. Spring adalah kerangka kerja aplikasi sumber terbuka. Beberapa waktu setelah diperkenalkannya kerangka kerja Spring, para pengembang menambahkan kerangka kerja MVC ke kerangka kerja Spring, berharap untuk mengatasi beberapa batasan yang mereka rasakan dalam Struts. Tetapi beberapa tahun kemudian, Struts2 (atau Struts versi 2) tiba, dan itu adalah kerangka kerja aplikasi web yang sangat berbeda dan sangat ditingkatkan. Sekarang, baik Struts dan Spring MVC sedang digunakan sangat banyak 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 dimaksudkan untuk mengembangkan aplikasi web Java EE. Struts mendorong penggunaan arsitektur MVC (Model-View-Controller). Ini adalah ekstensi dari Java Servlet API. Craig McClanahan adalah pencipta asli Struts. Awalnya dikenal sebagai Jakaratha Struts, dan dikelola di bawah Jakarta Project of Apache Software Foundation. Rilis stabil saat ini adalah versi 2.2.3, yang dirilis pada Mei 2011. Ini dirilis di bawah Apache License 2.0. Kerangka kerja Struts disebut kerangka kerja berbasis permintaan, dan terdiri dari tiga komponen utama: penangan permintaan, penangan respons, dan perpustakaan tag. URI standar (Uniform Resource Identifier) dipetakan ke penangan permintaan. Penangan respons bertanggung jawab untuk mentransfer kontrol. Untuk membuat aplikasi interaktif dengan formulir, fitur yang ditawarkan oleh perpustakaan tag 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 saat ini dari kerangka kerja 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 kerja Spring, dan MVC adalah salah satunya. Kerangka Spring MVC bukan bagian dari rencana awal mereka. Bahkan, alasan mengapa pengembang Spring membuat kerangka MVC mereka sendiri adalah untuk memberikan solusi terhadap 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 kerja 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, mereka memiliki perbedaan. Bahkan, Spring MVC dikembangkan untuk mengatasi beberapa keterbatasan dalam 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 keunggulan utama Spring MVC adalah memungkinkan untuk memiliki integrasi tanpa batas dengan banyak opsi tampilan seperti JSP / JSTL, Tiles, FreeMaker, Excel, PDF, dan JSON. Tapi, tidak seperti Struts, Spring MVC tidak menyediakan dukungan AJAX bawaan (perlu menggunakan perpustakaan AJAX pihak ketiga).
Pada akhirnya, keduanya dianggap kerangka kerja yang sangat matang, dan memilih antara keduanya bermuara pada preferensi pribadi. Penting untuk dicatat di sini bahwa jika ada perasaan negatif terhadap struts, mereka hanya disebabkan oleh kekurangan yang ditemukan di Struts versi 1 (yang sekarang dianggap usang).