Struts vs Spring MVC
Struts çerçevesi, Java EE web uygulamaları geliştirmeye yönelik ilk web uygulaması çerçevelerinden biridir. Spring, açık kaynaklı bir uygulama çerçevesidir. Spring çerçevesinin tanıtılmasından bir süre sonra, geliştiriciler, Struts'ta algıladıkları bazı sınırlamaları ele almayı umarak Spring çerçevesine bir MVC çerçevesi eklediler. Ancak birkaç yıl sonra Struts2 (veya Struts sürüm 2) geldi ve tamamen farklı ve oldukça gelişmiş bir web uygulaması çerçevesiydi. Şimdi, hem Struts hem de Spring MVC, dünyada Java EE uygulamaları geliştirmek için çok yoğun bir şekilde kullanılıyor.
Struts nedir?
Struts (Apache Struts olarak da bilinir), Java ile yazılmış, Java EE web uygulamaları geliştirmek için tasarlanmış, platformlar arası bir açık kaynak çerçevesidir. Destekler, MVC (Model-View-Controller) mimarisinin kullanımını teşvik eder. Java Servlet API'sinin bir uzantısıdır. Craig McClanahan, Struts'un orijinal yaratıcısıdır. Başlangıçta Jakaratha Struts olarak biliniyordu ve Apache Yazılım Vakfı'nın Jakarta Projesi kapsamında sürdürüldü. Mevcut kararlı sürümü, Mayıs 2011'de yayınlanan 2.2.3 sürümüdür. Apache Lisansı 2.0 altında yayınlandı. Struts çerçevesi, istek tabanlı çerçeve olarak adlandırılır ve üç ana bileşenden oluşur: istek işleyici, yanıt işleyici ve etiket kitaplığı. Standart URI (Tekdüzen Kaynak Tanımlayıcı), bir istek işleyicisine eşlenir. Yanıt işleyici, kontrolün aktarılmasından sorumludur. Formlarla etkileşimli uygulamalar oluşturmak için etiket kitaplığının sunduğu özelliklerden yararlanılabilir. Destekler, REST uygulamalarını ve SOAP, AJAX vb. gibi çeşitli teknolojileri destekler.
Bahar MVC nedir?
Bahar, açık kaynaklı bir uygulama çerçevesidir. Rod Johnson tarafından geliştirilmiştir ve ilk versiyonu 2004 yılında yayınlanmıştır. Spring 3.0.5, Spring çerçevesinin güncel versiyonudur. Apache 2.0 lisansı altında lisanslanmıştır. Herhangi bir Java uygulaması, Spring çerçevesinin temel özelliklerini kullanabilir. Spring çerçevesinde birkaç modül vardır ve MVC bunlardan biridir. Spring MVC çerçevesi, orijinal planlarının bir parçası değildi. Aslında Spring geliştiricilerinin kendi MVC çerçevesini ortaya çıkarmalarının nedeni, Struts (versiyon 1) ve diğer benzer çerçevelerdeki eksiklikler olarak gösterdikleri şeylere çözüm sağlamaktı. Özellikle sunum katmanı, istek işleme katmanı ve model arasındaki ayrım eksikliğini gidermek istediklerini söylediler. Spring MVC ayrıca istek tabanlı bir web uygulaması çerçevesidir.
Struts ve Spring MVC arasındaki fark nedir?
Spring MVC ve Struts, Java EE web uygulamaları geliştirmek için kullanılan iki popüler web uygulaması çerçevesi olmasına rağmen, aralarında farklılıklar vardır. Aslında, Spring MVC, Struts'taki (versiyon 1) birkaç sınırlamayı ele almak için geliştirildi. Ancak Struts2, sürüm 1'den oldukça gelişmiş bir çerçevedir (aynı kod tabanını bile paylaşmazlar) ve bu nedenle Spring MVC ve Structs2 oldukça karşılaştırılabilir.
Spring MVC'nin ana avantajlarından biri, JSP/JSTL, Tiles, FreeMaker, Excel, PDF ve JSON gibi birçok görüntüleme seçeneğiyle sorunsuz entegrasyona sahip olmanın mümkün olmasıdır. Ancak, Struts'tan farklı olarak Spring MVC, yerleşik AJAX desteği sağlamaz (üçüncü taraf AJAX kitaplığını kullanmanız gerekir).
Sonuçta, her ikisi de oldukça olgun çerçeveler olarak kabul edilir ve ikisi arasında seçim yapmak kişisel tercihlere bağlıdır. Burada, payandalara karşı herhangi bir olumsuz duygu varsa, bunların yalnızca Struts sürüm 1'de (artık modası geçmiş olarak kabul edilen) bulunan eksikliklerden kaynaklandığını belirtmek önemlidir.