Kitaplıklar neden uygulama sunucusu ortamının dışında çalışamıyor?
Aslında yapabilirler. Kütüphanelerin çoğu doğrudan bağımsız olarak kullanılabilir (Java SE'de) veya bir .war'a dahil edilebilir (pratikte neredeyse her zaman Tomcat budur). Java EE'nin JPA gibi bazı kısımları, kendi spesifikasyonlarında Java SE'de nasıl çalışması ve kullanılması gerektiğini anlatan açık bölümlere sahiptir.
Bir şey varsa, burada söz konusu olan bir uygulama sunucusu ortamı değil, diğer tüm kitaplıkların varlığı ve onları birleştiren entegrasyon kodu.
Bu nedenle, ek açıklamalar bu taramayı kendi başına yapan her kitaplık (EJB, JPA, vb.) Yerine tüm sınıflarınız için yalnızca bir kez taranacaktır. Ayrıca bu nedenle, CDI ek açıklamaları EJB çekirdeklerine uygulanabilir ve bunlara JPA varlık yöneticileri enjekte edilebilir.
Bir e-posta göndermek için basit bir kod derlemek için neden JBoss kadar büyük bir şeye ihtiyacım var?
Bu soruda yanlış olan birkaç şey var:
- Derlemek için yalnızca Web Profili için 1MB'nin altında ve tam profil için 1MB'nin biraz üzerinde olan API kavanozuna ihtiyacınız vardır.
- Çalıştırmak için tabii ki bir uygulamaya ihtiyacınız var, ancak "büyük" şeyler abartıyor. Örneğin OpenJDK yaklaşık 75MB'dir ve TomEE (posta desteği içeren bir Web Profili uygulaması) yalnızca 25MB'dir. GlassFish bile (Tam Profil uygulaması) yalnızca 53MB'dir.
- Mail, Java SE'den (ve dolayısıyla Tomcat'ten) ve bağımsız mail.jar ve activation.jar kullanılarak mükemmel şekilde çalışır .
Java EE kitaplıkları neden "standart" değil ve normal JVM indirme ve / veya SDK'ya dahil edildi?
Java EE bir bakıma, zaten çok büyük olan JDK'yı yönetimi ve indirmesi daha kolay parçalara ayırmaya yönelik ilk girişimlerden biriydi. İnsanlar, grafiksel sınıfların (AWT, Swing) ve Applet'lerin, başsız bir sunucuda bazı komutları çalıştırmak olduğu zaman JRE'nin içinde olduğundan şikayet ediyorlar. Ve sonra tüm Java EE kitaplıklarını standart JDK'ya dahil etmek mi istiyorsunuz?
Modülerlik desteğinin nihai sürümüyle birlikte, paketler olarak ayrı ayrı kurulabilen birçok şeyin bulunduğu küçük bir temel JRE'ye sahip olacağız. Belki bir gün Java EE'yi oluşturan birçok veya hatta tüm sınıflar da böyle bir paket olacaktır. Zaman gösterecek.
Standart Java'nın gerçekten yalnızca iki ana çeşidi varken (Oracle JVM / SDK | OpenJDK JVM / JDK) neden bu kadar çok Java EE teklifi var?
Java SE'nin ikiden fazla çeşidi vardır. En azından IBM JDK, önceki BEA olanı (satın alma nedeniyle Oracle / Sun ile birleştirilen JRocket), çeşitli diğer açık kaynak uygulamaları ve yerleşik kullanım için bir dizi uygulama var.
Java SE ve EE'nin bir şartname olmasının nedeni, birçok satıcı ve kuruluşun bunu uygulayabilmesidir ve bu nedenle rekabeti teşvik eder ve satıcıya bağımlı kalma riskini azaltır.
C ++ standardına bağlı kalmanın yanı sıra birçok rakip teklifinizin olduğu C ve C ++ derleyicileriyle gerçekten farklı değil.
Java EE kitaplığı sürümü neden standart Java kitaplık sürümleriyle (Java EE 6 vs. Java 7) senkronize değil
Java EE, Java SE üzerine kurulur, bu yüzden geride kalır. Versiyonlar yine de örtüşüyor. Java EE 5, Java SE 5 gerektirir. Java EE 6, Java SE 6 vb. Gerektirir. Sadece Java SE X mevcut olduğunda, Java EE X-1 günceldir.