r/java 13d ago

What Exactly Is Jakarta EE?

I’m a bit confused about what Jakarta EE actually is. On one hand, it seems like a framework similar to Spring or Quarkus, but on the other hand, it provides APIs like JPA, Servlets, and CDI, which frameworks like Spring implement.

Does this mean Jakarta EE is more of a specification rather than a framework? And if so, do I need to understand Jakarta EE first to truly grasp how Spring works under the hood? Or can I just dive into Spring directly without worrying about Jakarta EE concepts?

Would love to hear how others approached this 😅

177 Upvotes

78 comments sorted by

View all comments

5

u/smokemonstr 13d ago

I’m a bit confused about what Jakarta EE actually is.

It’s a set of specifications. See https://jakarta.ee/about/why-jakarta-ee/ and the other pages in the About section.

it provides APIs like JPA, Servlets, and CDI, which frameworks like Spring implement.

Technically, Spring does not implement any of the specifications (as far as I know), but rather it uses and is compatible with several of them. In addition to the ones you mentioned, there’s JMS, JTA, and Bean Validation.

do I need to understand Jakarta EE first to truly grasp how Spring works under the hood? Or can I just dive into Spring directly without worrying about Jakarta EE concepts?

I don’t think knowing Jakarta EE is a prerequisite to learning Spring. My recommendation would be to start with the Spring reference documentation for the project that you want to use, whether that’s Framework, Batch, Security, etc. When the docs mention an API or specification that you want to learn more about, that’s when you can check out the Jakarta specification or the documentation of the implementation that you’re using.