Jakarta EE From Zero
Jakarta EE (the platform formerly called Java EE) is the standard for enterprise Java — a family of specifications that a huge share of banks, insurers, governments, and large enterprises build on. If Spring Boot is the popular framework, Jakarta EE is the official standard it grew up alongside: instead of one vendor's framework, it's a set of agreed-upon APIs (dependency injection, REST, persistence, transactions, security) that multiple server vendors implement. Learn it and a whole category of enterprise jobs opens up — and you'll understand where many of Spring's ideas came from.
The mental model that makes Jakarta EE click is "specification, not implementation." You write code
against standard annotations (@Inject, @Path, @Entity), and an application server (WildFly,
Payara, Open Liberty…) provides the actual engine. Swap the server, keep your code. This guide builds
that model first, then walks the specs you'll actually use, demystifying each instead of handing you
boilerplate to copy.
📝 This assumes you know Java (classes, interfaces, generics, annotations). If that's shaky, do Java From Zero first. New to frameworks generally? What a Framework Even Is sets the stage, and the persistence phase builds directly on Hibernate & JPA.
How to read this
Read in order — it builds one example (a small Product REST service) spec by spec. Phases carry
difficulty badges so you can see the climb.
The phases
Part 1 — The platform (🟢 Basic)
- What Jakarta EE Is 🟢 — specs vs implementations, the Java EE → Jakarta rename, and how it compares to Spring.
- The Application Server & Deployment 🟢 — WildFly/Payara/Open Liberty, WAR packaging, and the container that runs your code.
Part 2 — The core specs (🟡 Intermediate)
3. CDI: Contexts & Dependency Injection 🟡 — the standard DI: @Inject, beans, scopes, qualifiers, producers.
4. JAX-RS: Building REST APIs 🟡 — @Path/@GET/@POST, JSON-B, and a real REST resource.
5. Jakarta Persistence (JPA) 🟡 — container-managed EntityManager, persistence units, and how Hibernate fits in.
6. Transactions with JTA 🟡 — container-managed transactions, @Transactional, and what JTA adds.
7. Validation & JSON Binding 🟡 — Jakarta Validation (@NotNull…) and JSON-B, wired into JAX-RS.
8. Enterprise Beans & Messaging 🟡 — @Stateless beans, scheduling, and asynchronous messaging.
Part 3 — Production & beyond (🔴 Advanced → 🟢)
9. Jakarta Security 🔴 — authentication mechanisms, @RolesAllowed, and identity stores.
10. MicroProfile & Where to Go Next 🟢 — cloud-native EE, how Quarkus/Helidon build on these specs, and what to build.
Jakarta EE and Spring aren't enemies — they share DNA (Spring helped inspire CDI; both use JPA). Knowing the standard makes every Java framework, including Spring, easier to read.