Struts vs Struts2
Struts (Apache Struts veya Struts 1 olarak da bilinir), Java'da yazılmış ve Java EE web uygulamalarını geliştirmek için tasarlanmış bir platformlar arası açık kaynak çerçevesidir. İlk Java EE web uygulaması çerçevelerinden biriydi. Ancak birkaç yıl sonra Struts2 (veya Struts sürüm 2) geldi ve tamamen farklı ve son derece gelişmiş bir web uygulama çerçevesiydi. İlk versiyonda eksiklik olarak algılanan birkaç konuyu ele almıştı. Struts2, dünyada Java EE uygulamaları geliştirmek için çok yoğun bir şekilde kullanılıyor.
Struts nedir?
Struts (Struts 1) çerçevesi, Java EE web uygulamalarını geliştirmek için ilk web uygulaması çerçevelerinden biriydi. Struts çerçevesi 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ülüyordu. Apache Lisansı 2.0 altında yayınlandı. Struts çerçevesine isteğe bağlı bir çerçeve denir ve üç ana bileşenden oluşur: bir istek işleyici, bir yanıt işleyici ve bir etiket kitaplığı. Standart URI (Tekdüzen Kaynak Tanımlayıcısı) bir istek işleyiciyle eşlenir. Yanıt işleyicisi kontrolü aktarmaktan sorumludur. Formlarla etkileşimli uygulamalar oluşturmak için etiket kitaplığı tarafından sunulan özellikler kullanılabilir. Struts, REST uygulamalarını ve SOAP, AJAX vb.Gibi çeşitli teknolojileri destekler..
Struts2 nedir?
Struts çerçevesinin, Java EE geliştiricileri tarafından o sırada belirli sınırlamalar içerdiği (esas olarak sunum katmanı, talep işleme katmanı ve model arasında ayrım olmaması) algılandı ve sonuç olarak birkaç yıl sonra Struts2 geldi. Aslında Struts2 Struts'tan tamamen farklıydı. Aslında, aynı kod tabanını bile paylaşmadılar çünkü Struts2 sadece WebWork 2.2 çerçevesini yeniden adlandırmanın bir sonucuydu (yani bir süre için ayrı ayrı çalışan WebWork ve Struts toplulukları, Struts2'yi bulmak için el ele verdiler). Mevcut kararlı sürümü Mayıs 2011'de piyasaya sürülen 2.2.3 sürümüdür..
Struts ve Struts2 arasındaki fark nedir?
Struts çerçevesinin birçok probleminden biri, arayüzler yerine soyut sınıflara programlama ihtiyacıydı. Bu Struts2 çerçevesi tarafından çözüldü. Örneğin, Struts çerçevesi, Action sınıflarının soyut temel sınıflardan genişletilmesini gerektirdi, ancak Struts2 Actions bir Action arabirimi uygulayabilir. İki sürüm arasındaki iş parçacığı modelindeki farklılıklar nedeniyle, Eylem nesneleriyle ilgili Struts çerçevesinde ortaya çıkan iş parçacığı güvenliği sorunları Struts2 çerçevesinde ortaya çıkmaz. Bunun nedeni, Struts2 Eylem nesnelerinin her istek için somutlaştırılması, Struts'taki Eylem'in ise bu Eylem için tüm istekleri işlemek için yalnızca bir örneği vardır. Struts'taki Eylemler çerçevesinden farklı olarak Struts2 Eylemleri, Servlet API'sine bağlı değildir.
Struts2 çerçevesinin test edilebilirliği Struts çerçevesinden nispeten daha yüksektir. Struts2 Eylemlerini üç adımı izleyerek test edebilirsiniz: örnekleme, ayar özellikleri ve yöntemlerin çağrılması. Eylem özellikleri ikinci bir giriş nesnesini tutmak zorunda kalmadan girdi özellikleri olarak kullanıldığından Struts2 çerçevesinde girdi toplama daha kolaydır. Struts2 çerçevesi, JSTL entegrasyonunun (Struts'ta mevcut) desteğinin yanı sıra, daha güçlü ve etkileyici OGNL (Nesne Grafiği Gösterim Dili) kullanabilir. Tür dönüştürme için Strut ve Strut2 sırasıyla Commons-Beanutils ve OGNL'yi kullanır. Bu gelişmeler nedeniyle Struts2 çerçevesi oldukça olgun bir çerçeve olarak kabul edilir ve Java EE programcıları arasında çok popülerdir. Öte yandan Struts çerçevesi artık kullanılmıyor.