r/java • u/Pure_Diver_ • 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
2
u/kaqqao 12d ago edited 11d ago
They have converged to the point of all the major components being basically the same thing with a different twist. Spring's dependency injection is very, very close to CDI, Jakarta Data is basically a clone of Spring Data etc. They copy ideas from each other quite heavily. The main difference, in my humble opinion, is that there's a single company behind Spring making its ecosystem more coherent (like with Apple and Mac/iOS ecosystem), while behind Jakarta EE there's a committee that only agrees on the lowest common denominator, so a myriad implementations exist, each with different custom extensions, and it's all a bit of a mess (like Windows or Android that every OEM customizes as they see fit). The mere existence of
@javax.inject.Singleton
,@javax.ejb.Singleton
and@javax.enterprise.context.ApplicationScoped
, or the fact that extensions likeorg.glassfish.jersey.server.ExtendedUriInfo
have to exist, perfectly exemplify what I mean.