Java EE tam olarak nedir?


162

Birkaç yıldır Java SE yapıyorum ve Java EE'ye geçiyorum. Ancak, Java EE'nin bazı yönlerini anlamakta güçlük çekiyorum.

  1. Java EE sadece bir spesifikasyon mudur? Ne demek istiyorum: EJB Java EE mi?

  2. EJB / Spring, Java EE'nin farklı uygulamaları mıdır?

Sorduğum için üzgünüm ama Java EE'nin ne olduğunu anlamakta zorlanıyorum.

Birisi Java EE'nin ne olduğunu açıklayabilir mi? Peki ya EJB?



2
Bu soruyu iki soruda kesmelisiniz, biri yineleniyor, diğeri oradaki bağlantıda cevaplanmadığını düşünüyorum.
Kheldar

2
Aslında, [java-ee] etiket wikisini okudunuz mu?
Paŭlo Ebermann


Yanıtlar:


187

Java EE sadece bir spesifikasyon mudur? Ne demek istiyorum: EJB Java EE mi?

Java EE gerçekten de soyut bir özelliktir. Herkes şartnamenin çalışan bir uygulamasını geliştirmeye ve sunmaya açıktır. Beton uygulamaları sözde uygulama sunucuları gibi WildFly , TomEE , GlassFish'in , Liberty , WebLogic'e vb gibi büyük bir Java EE API sadece JSP / Servlet parçası uygulamak servlet konteynerleri de vardır Tomcat , Jetty , vb.

Biz Java EE geliştiriciler, kod şartname kullanan yazmalısınız (yani içe yalnızca javax.* gibi uygulama belirli sınıfların yerine bizim kodunda sınıfları org.jboss.wildfly.*, com.sun.glassfish.*vb) ve daha sonra biz herhangi böylece herhangi uygulanmasına (bizim kod çalıştırmasına mümkün olacak uygulama sunucusu). JDBC hakkında bilginiz varsa, temelde JDBC sürücülerinin çalışma şekliyle aynı kavramdır. Ayrıca bakınız ao En basit ifadeyle, fabrika nedir?

Java EE SDK indir Oracle.com'un dan temelde dokümantasyon ve örnekler ve isteğe da NetBeans IDE bir demet boyunca GlassFish sunucusu içerir. Farklı bir sunucu ve / veya IDE istiyorsanız buna ihtiyacınız yoktur.

EJB, Java EE spesifikasyonunun bir parçasıdır. Bak, Java EE API'sında . Tam teşekküllü Java EE uygulama sunucuları kutuyu destekliyor, ancak basit JSP / Servlet kapsayıcıları desteklemiyor.

Ayrıca bakınız:


EJB / Spring, Java EE'nin farklı uygulamaları mıdır?

Hayır, dediğimiz gibi EJB, Java EE'nin bir parçasıdır. Bahar, Java EE'nin birçok parçasının yerine geçen ve geliştiren bağımsız bir çerçevedir. Spring, Java EE'nin çalışması için zorunlu değildir. Tomcat gibi çıplak kemikli bir kulübe zaten yeterlidir. Basitçe söylemek gerekirse, Spring Java EE'nin bir rakibi. Örneğin "Spring" (bağımsız) EJB / JTA ile yarışır, Spring MVC JSF / JAX-RS ile yarışır, Spring DI / IoC / AOP CDI ile yarışır, Spring Security JAAS / JASPIC ile yarışır vb.

Eski J2EE / EJB2 zamanlarında, EJB2 API'sini uygulamak ve korumak korkunçtu. Bahar o zaman EJB2'ye çok daha iyi bir alternatifti. Ancak EJB3'ten (Java EE 5) beri, EJB API, Spring'den alınan derslere dayanarak çok geliştirildi. CDI'dan (Java EE 6) beri , geliştiricileri diğerlerinin yanı sıra hizmet katmanını geliştirmeyi daha kolay hale getirmek için Spring gibi başka bir çerçeveye tekrar bakmak için bir neden yoktur .

Yalnızca Tomcat gibi bir çıplak kemikli sunucu uygulaması kapsayıcısı kullandığınızda ve bir Java EE sunucusuna geçemediğinizde, Spring Tomcat'e yüklenmesi daha kolay olduğundan daha caziptir. Sunucunun kendisini değiştirmeden Tomcat'e örneğin bir EJB kapsayıcısı kurmak mümkün değildir, temel olarak TomEE'yi yeniden keşfediyor olursunuz.

Ayrıca bakınız:


2
Java EE'nin tipik bir JEE uygulamasının çalışması için hangi desteğin olması gerektiğini tanımladığı söylenebilir mi?
James P.

4
@James: Evet. Java EE API'sindeki her şey soyut. Java SE API'nin birkaç soyut bölümü de vardır, örneğin JDBC, JAXP, JAXB, vb.
BalusC

3
"Geliştiricileri daha kolay hale getirmek için Spring gibi başka bir çerçeveye tekrar bakmak için bir neden yok." -> Gerçekten değerli bilgiler.
jacktrades

@BalusC: Merhaba, Resmi Sun Java EE .... bağlantısı koptu, buna benzer bir bağlantı verirseniz, birisi için yararlı olacaktır.
Abdul Rahman

Tam Spring çerçevesini çalıştırmak için Servlet kapsayıcısı yeterli olacaktır, Servlet kapsayıcısı [web sunucusu + web kapsayıcısıdır (servlet api uygular)] Java EE'yi çalıştırmak için Glassfish gibi uygulama sunucusuna ihtiyacınız vardır. Servlet kabı yeterli olmazdı. Sunucu uygulaması kapsayıcısı, uygulama sunucusunun bir alt kümesidir. Bunu nasıl anlayabilirim?
Aralık'ta aşırı değişim

11

Java Enterprise Edition (Java EE), Enterprise JavaBeans'in (EJB) daha önemli olanlardan biri olduğu daha ayrıntılı spesifikasyonlara referans veren bir şemsiye spesifikasyonudur.

Oku Bu - bu Java EE ve Bahar arasındaki farkı açıklar

Teşekkürler...


4
  • Kaynak - Java 2 Platformu, Enterprise Edition (J2EE), bileşen tabanlı çok katmanlı kurumsal uygulamalar geliştirme standardını tanımlar. J2EE, taşınabilir, ölçeklenebilir ve eski uygulamalarla ve verilerle kolayca bütünleşen kurumsal uygulamaların oluşturulmasını kolaylaştırır.

  • Kaynak - Enterprise JavaBeans (EJB) teknolojisi, Java Platform, Enterprise Edition (Java EE) için sunucu tarafı bileşen mimarisidir. EJB teknolojisi, Java teknolojisine dayalı dağıtılmış, işlemsel, güvenli ve taşınabilir uygulamaların hızlı ve basit bir şekilde geliştirilmesini sağlar.

  • Java EE sadece bir spesifikasyon mudur? Ne demek istiyorum: EJB Java EE mi?

    • Java EE bir teknik özelliktir.

    • EJB, Java EE için sunucu tarafı bileşen mimarisidir

  • EJB / Spring, Java EE'nin farklı uygulamaları mıdır?

    • Hem EJB hem de Spring, Java EE'yi izleyen farklı çerçevelerdir.

6
Antik metnin (2005) şartnamenin eski bir versiyonundan (J2EE) alıntılanması çok yararlı olmayabilir. OP özellikle J2EE'nin günümüzdeki enkarnasyonu olan Java EE'yi istedi.
Arjan Tijms

-5

Basitçe söylemek gerekirse - JavaEE bir platformdur.

Sadece API'ler olan birçok spesifikasyondan oluşur. Bu API'lerin somut somut uygulamaları 'Referans Uygulama' olarak adlandırılır

  1. EJB, JavaEE platformunda sadece bir özelliktir
  2. Hayır, Spring, JavaEE uygulamaları geliştirmenize izin verebileceğiniz / destekleyebileceğiniz bir uygulama çerçevesidir

EJB, Kurumsal Java Fasulyesi


4
Bu cevap önceki yanıtlara hiçbir şey eklemiyor. Dahası, doğru değil: sadece bir somut uygulama Referanstır, diğerleri değildir. Küçük olan: Spring, JavaEE ile bütünleşir, ancak iyi olmadan çalışabilir.
Tair

@tair Evet sadece 1 somut uygulama, örneğin JPA için 'Referans' olarak kabul edilir, ancak çok sayıda uygulaması vardır, ancak sadece EclipseLink UR'dir. Ben RI bahsettiğimde farklı API'ler arasında anlam vardı. sanırım yukarıdaki cevabımı yanlış anladın. Ayrıca, evet, Spring yukarıda bahsettiğim JavaEE ile entegre oluyor.
Yazılım Geliştirme
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.