Baza Wiedzy

Czym jest Java EE

jee-logo🔗

Historia i wersje🔗

JavaEE (Java for Enterprise Edition) jest platformą do tworzenia aplikacji biznesowych agregującą zestaw specyfikacji dla języka Java, które w założeniu mają upraszczać rozwiązywanie złożonych i powtarzalnych problemów związanych z wytwarzaniem oprogramowania.

Początkowo platforma nosiła nazwę J2EE (Java 2 Platform Enterprise Edition) i zawierała tylko wąski wycinek tego co obecnie, m.in.:

    • JDBC jako główną specyfikację komunikacji z bazami danych
    • Java servlets jako komponenty komunikacji sieciowej w oparcui o protokół HTTP
    • JSP (Java ServerPages) pozwalające tworzyć dynamiczne strony HTML
    • EJB (Enterprise Java Beans) stanowiące podstawowe komponenty budowy warstwy usług aplikacji
    • i wiele więcej

    Pierwsze wersje J2EE nie były zbytnio lubiane przez programistów. Pomimo iż oparte o Javę dawały spore możliwości skalowania, rozproszenia komponentów i ogólnej wydajności, to sam model był dosyć skomplikowany. Szczególną rolę odegrała tutaj dosyć znienawidzona technologia EJB (w wersji wcześniejszej niż 3), która była jedną z przyczyn powstania najpopularniejszego dziś frameworka Spring.

    Z powodu wielu narzekań i słabnącej popularności J2EE na rzecz frameworków takich jak Spring, czy Struts, w wersji 5 postanowiono odciąć się od wcześniejszej numeracji (1.1, 1.2, itd) oraz samej nazwy J2EE zastępując ją krótszą wersją Java EE 5.

    Co ciekawe w ofertach pracy nadal bardzo często pojawia się historyczne nazewnictwo, co najczęściej sugeruje, że rekruter ma niewielkie pojęcie o samej Javie.

    Najważniejsze zmiany, które przyniosła Java EE 5 to zupełna zmiana modelu EJB i dodanie specyfikacji mapowania obiektowo-relacyjnego JPA bazującego na doświadczeniach frameworka Hibernate.

    Wersje 6 i 7 to dalsze prace nad tym, aby platforma była coraz lżejsza i intuicyjna, wprowadzenie frameworka MVC w postaci JSF (JavaServer Faces) oraz standardu wstrzykiwania zależności pomiędzy różnymi komponentami w postaci CDI (Contexts and Dependency Injection).

    Kurs Java EE i Jakarta EE

    Specyfikacje🔗

    Java EE to w rzeczywistości zbiór specyfikacji opisujących zachowanie poszczególnych jej elementów. Nie są to więc żadne elementy w rozumieniu semantycznym (nie znajdziemy tutaj nowych typów danych, czy nowych rodzajów pętli), a jedynie zbiór interfejsów oraz opis ich działania. Warto wymienić tutaj takie elementy jak :

      • CDI (Context and dependency injection) - wstrzykiwanie zależności
      • JPA (Java Persistence API) - mapowanie obiektowo relacyjne
      • EJB (Enterprise Java Beans) - warstwa usług ze wsparciem dla zarządzania transakcjami
      • JaxRS - specyfikacja dedykowana do tworzenia aplikacji REST
      • JSF (Java ServerFaces) - framework MVC integrujący się z innymi elementami JEE
      • ...

      specyfikacje jee7

      Cała platforma Java EE składa się obecnie z kilkudziesięciu specyfikacji, a wersja 8 planowana na wydanie w roku 2017 doda do tego zbioru kolejne elementy i zaktualizuje już istniejące.

      Co ciekawe istnieje wiele implementacji poszczególnych specyfikacji. Dlatego jako implementację JPA możemy wybrać zarówno Hibernate jak i EclipseLink i w obu przypadkach docelowe działanie powinno być identyczne. Dla każdej specyfikacji istnieje jednak tzw. implementacja referencyjna, która uznawana jest za wzorcową.

      Serwery Javy EE🔗

      Wśród serwerów dedykowanych dla technologii Java EE można dokonać podziału na takie, które są wyłącznie kontenerami serwletów, np. Tomcat, czy Jetty oraz serwery z pełnym wsparciem Javy EE takie jak JBoss/Wildfly, Glassfish, WebLogic, WebSphere, które rozwijane są przez różne firmy.

      Serwery JEE

      Co ciekawe najpopularniejszym serwerem jest Tomcat, który jest jednym z najprostszych w tym zestawieniu. Jego popularność wynika przede wszystkim z tego, że jest on mocno powiązany ze Spring Framework. Różnica pomiędzy kontenerami serwletów, a serwerami aplikacji polega przede wszystkim na ich możliwościach. W serwerze aplikacji wszystkie biblioteki takie jak Hibernate są już nam dostarczone, w przypadku kontenerów serwletów będziemy musieli zadbać o wszystkie biblioteki samodzielnie.

      Hostingi🔗

      W celu uruchomienia aplikacji napisanych w Javie EE nie wystarczy nam niestety prosty hosting za kilka zł kupiony u popularnych dostawców. Większość z nich jest dedykowana przede wszystkim do języka PHP.

      Jeżeli chcemy udostępnić swoją aplikację w sieci i nie jest to drugie allegro, a raczej np. prosty blog, to możemy pomyśleć nad chmurami obliczeniowymi takimi jak OpenShift, czy Heroku lub wykupić tani serwer VPS, gdzie mamy dowolność w instalowaniu i administracji serwerem.

      Najlepszy newsletter o Javie w Polsce

      Czy chcesz otrzymywać nowości ze świata Javy oraz przykładowe pytania rekrutacyjne? Zapisz się na newsletter i bądź na bieżąco! Otrzymasz także ekskluzywne materiały oraz informacje o nowych kursach i promocjach.

      Nikomu nie udostępniamy Twojego maila, a jeśli zechcesz to w każdej chwili możesz się wypisać.

      Komentarze do artykułu

      Wyłączyliśmy możliwość dodawania komentarzy. Poniżej znajdziesz archiwalne wpisy z czasów gdy strona była jeszcze hobbystycznym blogiem. Zapraszamy natomiast do zadawnia pytań i dyskusji na naszej grupe na facebooku.