Definicja #
Java EE (Java Platform, Enterprise Edition), obecnie znana jako Jakarta EE, to zestaw specyfikacji i API rozszerzających platformę Java SE o funkcje niezbędne do budowania wielowarstwowych aplikacji enterprise. Do 2017 roku rozwijana przez Oracle; następnie przekazana do Eclipse Foundation pod nazwą Jakarta EE.
Kluczowe specyfikacje Java EE / Jakarta EE:
- Servlets i JSP — podstawa webowa: Servlets obsługują żądania HTTP, JSP (JavaServer Pages) generują HTML po stronie serwera
- EJB (Enterprise JavaBeans) — komponenty biznesowe zarządzane przez kontener: Session Beans (Stateless, Stateful, Singleton), Message-Driven Beans
- JPA (Java Persistence API) — standard ORM do mapowania obiektów Java na tabele relacyjne; implementacje: Hibernate, EclipseLink
- JMS (Java Message Service) — asynchroniczna komunikacja przez kolejki i tematy (message queues); implementacje: ActiveMQ, IBM MQ
- CDI (Contexts and Dependency Injection) — wstrzykiwanie zależności i zarządzanie kontekstem (scope: Request, Session, Application)
- JAX-RS — tworzenie RESTful API; implementacje: RESTEasy, Jersey
- JAX-WS — usługi webowe SOAP
- JSF (JavaServer Faces) — framework do budowania komponentowych UI
Serwery aplikacyjne: WildFly (dawniej JBoss), Payara, GlassFish, IBM WebSphere, Oracle WebLogic implementują specyfikacje Jakarta EE.
Zastosowania #
Java EE / Jakarta EE stosuje się do:
- Systemów korporacyjnych w sektorze finansowym, ubezpieczeniowym i publicznym — wiele legacy systemów działa na serwerach aplikacyjnych WildFly, WebSphere, WebLogic
- Aplikacji wymagających transakcji rozproszonych (JTA) i niezawodności enterprise — bankowe systemy transakcyjne i ERP
- Integracji systemów przez kolejki komunikatów (JMS) — asynchroniczna komunikacja między systemami
- Migracji i modernizacji legacy Java EE do Jakarta EE lub microservices (Spring Boot, Quarkus)
- Aplikacji webowych z komponentowym UI (JSF) — portale intranetowe i systemy back-office
Ścieżka nauki #
Java EE/Jakarta EE jest spotykana głównie w legacy systemach enterprise. Nowe projekty często wybierają Spring Boot lub Quarkus.
Zacznij od:
- Solidne podstawy Java — Java EE wymaga dobrego rozumienia języka: OOP, generyki, kolekcje, lambdy
- Architektura serwer aplikacyjny — zrozum czym jest serwer aplikacyjny vs serwer www vs Servlet Container
- WildFly lub GlassFish — zainstaluj lokalnie, wdróż pierwszą aplikację WAR/EAR
- Servlets i JSP — podstawowy cykl żądanie-odpowiedź HTTP w Java EE
- JPA z Hibernate — mapowanie ORM, Entity, EntityManager, JPQL
Następnie (dla systemów legacy lub enterprise):
- CDI — wstrzykiwanie zależności, scopes, events, interceptory
- EJB — Session Beans, transakcje (CMT/BMT), @Schedule dla zadań cyklicznych
- JAX-RS — budowanie REST API w standardzie Jakarta EE
- Alternatywy: Spring Boot (preferowany w nowych projektach), Quarkus (cloud-native Jakarta EE), MicroProfile
FAQ #
- Czym różni się Java EE od Spring Framework?
- Java EE/Jakarta EE to zestaw standardów (specyfikacji) implementowanych przez różne serwery aplikacyjne. Spring Framework to prywatny framework (VMware/Broadcom) z własnym kontenerem DI i ekosystemem. Spring Boot jest dziś dominującym wyborem dla nowych projektów Java — jest prostszy w konfiguracji i nie wymaga serwera aplikacyjnego.
- Co to jest Jakarta EE?
- Jakarta EE to nowa nazwa Java EE po przejęciu projektu przez Eclipse Foundation w 2017 roku. Od Jakarta EE 9 przestrzeń nazw pakietów zmieniła się z javax.* na jakarta.*. Jakarta EE kontynuuje ewolucję standardów enterprise Java — wersja 10 i 11 wspierają nowoczesne cloud-native patterns.
- Czy Java EE jest nadal używana?
- Tak — wiele enterprise'owych systemów wciąż działa na serwerach aplikacyjnych (WebSphere, WebLogic, WildFly) ze starszymi wersjami Java EE. Nowe projekty najczęściej wybierają Spring Boot lub Quarkus. Znajomość Java EE/Jakarta EE jest poszukiwana przy utrzymaniu i modernizacji systemów legacy.
- Ile zarabia Java EE Developer?
- Java Developer ze znajomością Java EE/Jakarta EE w Polsce zarabia od 12 000 do 25 000 zł brutto. Specjaliści od legacy systemów enterprise (WebSphere, WebLogic) są często bardzo dobrze wynagradzani ze względu na rzadkość kompetencji — senior może liczyć na 20 000-35 000 zł.