EJB 3 yerine Spring + Hibernate tercih ediliyor mu?


12

Yeni JEE projeleri her başladığında (bu teknolojilerin geçerli olacağı yerlerde) insanların EJB 3 yerine Spring + Hibernate kombinasyonunu kullanmayı tercih ettiklerini düşünüyorum.

Görünüşe göre genç programcıların EJB yerine bunun için gitmeleri tavsiye ediliyor.

Bu kişisel tercih mi, yoksa bunun uygun nedenleri var mı? (örneğin, performans nedenlerine veya öğrenme eğrisine karşı EJB'de veya teknoloji şişkinliğinde güvensizliğe neden olan önceki EJB sürümleri tarafından oluşturulan kişisel izler)?


2
Neredeyse tarihsel bir aktarım olduğunu düşünüyorum çünkü ejb bir noktada bahar + kış uykusu kadar iyi değildi ... şimdi bazı durumlarda ejb için bir dava yapılabileceğini düşünüyorum ...
Rig

Yanıtlar:


11

EJB 3+ çerçeveleri, JPA ile ek açıklama yapılandırılmış Kalıcılık çerçeveleri ve ek açıklama yapılandırılmış bağımlılık enjeksiyonuna izin veren CDI için bir cevap olarak geldiklerinden oldukça iyidir. Ayrıca Kaynakın üstüne de ekleyebilirsiniz. Öte yandan bahar şimdi ek açıklama ile yapılandırma ile oyunda yetişiyor.

Bununla birlikte EJB1 ve 2'ye karşı tarihsel backlack iskonto edilmemelidir. Kurumsal uygulamalar yazmayla ilgili sorunları çözmekle kalmadılar, aynı zamanda muhteşem bir şekilde başarısız oldular . Tasarımcıların kurumsal ve web uygulama geliştiricilerinin karşılaştıkları gerçek sorunlara nabız atmak ve aslında ihtiyaç duydukları çözümleri sunmak tamamen başarısız oldu.

Buna ek olarak, şu anda Java'nın şu anki yönü ile ciddi sarsıntılar ve kararsızlıklar ve Oracle'daki eski Sun JVM'nin mevcut görevlilerine ve sahiplerine olan inanç eksikliğine olan güvensizliği ekleyin. Birçok kişi Oracle'ın Java üzerinde gelişeceğine ve yön göstereceğine inanmıyor ve ayrıca Apache Yazılım Vakfı'nın havluya atılabileceğinden korkuyor. Gittikçe daha fazla insan Java'nın geleceği için OpenJDK'yi arıyor, ancak Enterprise'ın benimsenmesi için olması gereken yerde değil.

Bazıları tüm bunları ölüm kokusu olarak görüyor, çünkü kurumsal uygulamalar Java'nın tarihsel olarak dünyanın 1 numaralı programlama dili olmasının önde gelen nedenlerinden biri. Microsoft'un .NET teknolojileriyle Java'ya karşı bu kadar çok yer edinmesinin nedeni budur.

Kurumsal olmayan Java uygulama geliştiricileri, çözümlerini oluşturmaya yardımcı olmak için OpenJDK ve diğer açık kaynaklı çerçevelere giderek daha fazla yöneliyor ve bazıları asla geriye bakmıyor. Teknik olarak JEE, karşılaştırılabilir Bahar uygulamanızla başa çıkabilse de, JEE'yi meşruiyetin ön saflarına geri döndürmek için çok az bir zaman olduğunu söyleyebiliriz.


İyi özetlenmiş ve konuşulan marple. Bu benim EJB görüşümü de paylaşıyor.
onigunn

4

EJB'nin çok fazla bagajı var. Bu bagajın bir kısmı, yanlış kitleyi hedef aldığı gerçeğinden geliyor. Diğer kısım ise ilk iki versiyonun tamamen saçmalık olmasıydı.

Orijinal EJB sürümlerine bakarsanız, tasarım bir EJB geliştiricisinin herhangi bir EJB uyumlu kap içinde kullanılabilecek paketlenmiş bir çözüm oluşturabileceğiydi. Bir şirket içi dükkan için, bu soyutlama seviyesi gereksizdi. Üçüncü taraf EJB bileşen satıcıları için gelişen bir pazar yapmak için mükemmel bir çözümdü. Bununla birlikte, Konteyner satıcıları pazarlamalarında aşırı hevesliydi ve tonlarını ürünlerini her gün gelişim için uygun bir çözüm olarak satıyorlardı. Bu, tüm uygulama kodunuzu COM + bileşenleri olarak oluşturmaya eşdeğerdir.

Orijinal J2EE spesifikasyonu hakkında daha fazla bilgi için, dahil olan satıcıların çoğunda CORBA sunucuları vardı ve bu ürünleri ileride kullanmak istediler. EJB spesifikasyonu IIOP protokolü (aslında IIOP üzerinde ince bir tabaka olan Java RMI) üzerine kurulmuştur. CORBA karmaşıklığı nedeniyle zaten reddedilmişti ve EJB kılık değiştirmiş halde sadece CORBA idi, bu yüzden CORBA'nın sahip olduğu birçok sorunu beraberinde getirdi. Aslında EJB'nin soyutlamaları, çalışmak için saf bir CORBA uygulamasından daha zorlaştı.

Kauçuk kaldırıma çarptığında, insanlar EJB ile performansın iğrenç olduğunu fark ettiler. Her çağrı uzaktan bir çağrı olduğunda ve uygulamayı başlatmak ve düzgün bir şekilde çalışmaya başlamanın zorluğu ile insanlar hızla alternatifler aradılar. Hazırda Bekletme ve Bahar bir JSP kapsayıcısında çalışan çözüm oldu.

EJB 3 bu yaklaşımı "benimsedi". Ama hala fazla fayda sağlamayan genel bir uzlaşma. Hala üçüncü taraf EJB bileşen pazarı yok, bu yüzden çözümünüzü oluşturmak için bir EJB konteyneri kullanmanın gerçekten bir anlamı yok.

Uzun lafın kısası. EJB 3 ilk iki iterasyonda büyük bir gelişme olsa da , yine de maliyetleri aşmak için yeterli fayda sağlamaz.


This would be the equivalent of building all of your application code as COM+ components. ... Ne korkunç
maple_shaft

3
Kesinlikle;) 2001 yılında bir dotcom ile çalıştım ve PERL uygulamalarını J2EE'ye taşıyacaklarına karar verdiler. Bu çaba için "mimarlar" toplu bir aylık J2EE eğitimi aldı (daha önce hiç bir Java satırı yazmamışlardı). En sevdiğim alıntı "PERL'de gerçekten iyiyim, Java'yı almak sadece yeni bir sözdizimi öğrenmek meselesi." Özgeçmişimi o gün Monster'a gönderdim.
Michael Brown
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.