Spring, Struts, Hibernate, JavaServer Faces, Goblen arasındaki fark nedir?


199

Aradaki farkın ne olduğunu öğrenebilir miyim: -

  1. bahar
  2. Struts
  3. Destek 2
  4. Hazırda
  5. JavaServer Yüzleri
  6. JavaServer Sayfaları
  7. Goblen

Bu teknolojiler / çerçeve birbirini tamamlayıcı mı? Ya da birbirlerine alternatifler (birini kullandıktan sonra diğerini kullanmam gerekmiyor)?

Teşekkürler.

Yanıtlar:


267
  1. Spring bir IoC konteynırdır (en azından Spring'in çekirdeği) ve bağımlılık enjeksiyonu kullanarak işleri bağlamak için kullanılır. Spring, işlem yönetimi ve diğer çeşitli teknolojilerin sorunsuz entegrasyonu gibi ek hizmetler sunar.
  2. Struts, eyleme dayalı bir sunum çerçevesidir (ancak yeni bir geliştirme için kullanmayın).
  3. Struts 2, eylem temelli bir sunum çerçevesidir , yukarıdakilerin 2 versiyonu (WebWork'in Struts ile birleştirilmesinden oluşturulmuştur).
  4. Hazırda Bekletme, bir nesne-ilişkisel eşleme aracı, bir kalıcılık çerçevesidir .
  5. JavaServer Faces bileşen tabanlı sunum çerçevesidir .
  6. JavaServer Pages, görünüm için belirtilen tüm sunum çerçevesi tarafından kullanılan bir görünüm teknolojisidir.
  7. Goblen başka bir bileşen tabanlı sunum çerçevesidir .

Özetlemek gerekirse:

  • Struts 2, JSF, Goblen (ve Wicket, Spring MVC, Stripes) sunum çerçeveleridir . Bunlardan birini kullanırsanız, başka birini kullanmazsınız.
  • Hazırda Bekletme, kalıcılık çerçevesidir ve ilişkisel bir veritabanındaki Java nesnelerini devam ettirmek için kullanılır.
  • Spring tüm bunları birbirine bağlamak ve bildirimsel işlem yönetimi sağlamak için kullanılabilir.

İşleri daha karmaşık hale getirmek istemiyorum, ancak Java EE 6'nın yukarıdaki çerçevelerin modern, standart ve çok güzel bir eşdeğerini sağladığını unutmayın: JSF 2.0 ve sunum için Facelets, kalıcılık için JPA 2.0, Bağımlılık Enjeksiyonu, vb. yeni gelişme, bu IMO ciddi bir seçenek, Java EE 6 büyük bir yığın.

Ayrıca bakınız


2
Bu tür bir karşılaştırma bağlamında, bazı insanların kendi MVC çerçevesine (Struts IMO'dan çok daha güzel) atıfta bulunmak için Spring kelimesini kullandığını belirtmek isterim.
MetroidFan2002

Güzel açıkladı, ama yine de çok teknik. Bunu layman döneminde açıklamanızı tavsiye ederim. Zaten sonunda bağlantılar bunu yaptı.
noob

Cevap gerçekten harika bir başlangıç ​​noktasıdır, ancak sunulan ana kavramları (talep tabanlı bileşen tabanlı çerçeveler, IoC kapları, Sunum ve kalıcılık çerçevesi vs ...) açıklayarak geliştirilebilir. googeling, ama yine de iyi bir cevap ve harika bir başlangıç ​​noktası! Oyla.
Wouter

19

Genellikle ...

Hazırda bekletme, veritabanı işlemlerini işlemek için kullanılır. Kod satırı sayısını azaltan zengin bir veritabanı yardımcı programı işlevi vardır. Özellikle @ Hazırda bekletme notunu okumak zorundasınız. Bir ORM çerçevesi ve kalıcılık katmanıdır.

Spring, Enjeksiyon bazlı çalışma mekanizmasının zengin bir setini sağlar. Şu anda, Spring iyi bilinir. Ayrıca Bahar AOP hakkında da okumak zorundasınız. Struts ve Hibernate arasında bir köprü var. Temelde Spring bu tür faydalar sağlar.

Struts2, eyleme dayalı programlama sağlar. Zengin Struts etiketi vardır. Struts, eylem tabanlı programlamayı kanıtlar, böylece görüşünüzün tüm ilgili kontrolünü korumanız gerekir.

Ayrıca, Goblen Java için farklı bir çerçevedir. İçinde yalnızca işlemek zorunda olduğunuz .tml(şablon dosyası). Herhangi bir sınıf için iki ana dosya oluşturmanız gerekir. Biri JAVA sınıfı, diğeri ise şablonu. Her iki isim de aynı. Goblen otomatik olarak ilgili sınıfları çağırır.


7

Burada kendiniz için genel bakışı ve sıralamayı görebilirsiniz . Hazırda Bekletme modu bir ORM'dir, bu nedenle web uygulaması oluşturmak için struts + Hiberante veya spring + hibernate öğelerini kullanabilirsiniz. Farklı web çerçeveleri ve birçoğu birbirine alternatiftir.


4

Bahar, IOC (Kontrolün İnversiyonu) ile ilgilenen bir uygulama çerçevesidir.

Struts 2, eylemlerle ilgilenen bir web uygulaması MVC çerçevesidir.

Hazırda Bekletme, kalıcı verilerle ilgilenen bir ORM'dir (Nesne İlişkisel Eşleme).


3

Kısacası,

Struts , web sitesinin ön uç gelişimi içindir

Hazırda Bekletme , web sitesinin arka uç gelişimi içindir

Spring , Spring MVC'nin (Model-View-Controller) Ön uç için olduğu web sitesinin tam olarak geliştirilmesi içindir. ORM, Veri Erişimi / Entegrasyonu için JDBC (arka uç). vb


2

Hazırda bekletme modunda SQL'de tablo oluşturma konusunda endişelenmenize gerek yoktur ve bağlantıyı hatırlamanız gerekmez, böyle bir veritabanında veri kaldığı gibi hazırlanan deyim. Yani, temel olarak bir geliştiricinin hayatını kolaylaştırır.


2

Spring ,2003yılında Rod Johnson tarafından oluşturulan hafif ve açık kaynak bir çerçevedir. gerçek zamanlı bir uygulama.

Struts , Java EE web uygulamalarını geliştirmek için açık kaynaklı bir web uygulama çerçevesidir. Java Servlet API'sini kullanır ve geliştiricileri bir model-görünüm-denetleyici (MVC) mimarisini benimsemeye teşvik eder. İlk olarak Craig McClanahan tarafından yaratılmışve Mayıs 2000'de Apache Vakfı'na bağışlanmıştır.

Aşağıda, Yay ve Dikme Çerçevesi arasındaki farkın karşılaştırma tablosu yer almaktadır

resim açıklamasını buraya girin


0

Goblen sayfaları ve bileşenleri, Java dil özelliklerine kolay erişim için alıcılar ve ayarlayıcılardan oluşan basit POJO'lardır (Düz Eski Java Nesnesi) .


0

Spring , Struts ve Hibernate arasındaki farklar şunlardır:

  1. Bahar bir Uygulama Çerçevesidir, ancak Struts ve hazırda bekletme değildir.
  2. İlkbahar ve Hazırda Bekletme Hafif ağırlıklıdır, ancak Struts 2 değildir.
  3. Spring ve Hibernate, katmanlı bir mimariye sahiptir, ancak Struts 2 bunu yapmaz.
  4. Bahar ve Hazırda Bekletme gevşek bağlantıyı destekler ancak Struts 2 desteklemez .
  5. Struts 2 ve Hibernate'de etiket kitaplığı var, ancak Spring yok.
  6. Spring ve Hibernate'in ORM teknolojileriyle kolay entegrasyonu vardır, ancak Struts bunu yapmaz.
  7. Struts 2, istemci tarafı teknolojilerle kolay entegrasyona sahiptir, ancak Spring ve Hibernate'de yoktur.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.