Java Frameworks Overview
Spring, Jakarta EE, Quarkus, Micronaut, and Vert.x - what each is for and how to choose.
Deutsche Übersetzung in Arbeit
Diese Lektion ist noch nicht ins Deutsche übersetzt und wird daher auf Englisch angezeigt. Der Rest der Seite ist vollständig lokalisiert.
Auf dieser Seite
You could build a web app with plain Java - but you'd rewrite the same plumbing every time. Frameworks provide that plumbing (web servers, dependency wiring, database access, security) so you focus on your actual features. This lesson maps the Java framework landscape so you know what's out there and how to choose.
What a framework gives you
Building a house from raw materials, you'd lay every pipe and wire yourself. A pre-built frame with plumbing and electrics already run lets you focus on the rooms and décor. A framework provides the structural plumbing of an app - routing, configuration, data access - so you build features, not foundations.
A key idea is Inversion of Control (IoC): instead of your code calling a library when it wants, the framework runs the show and calls your code at the right moments. "Don't call us, we'll call you."
Spring & Spring Boot - the dominant choice
Spring is the most popular Java framework by far, and Spring Boot makes it easy by auto-configuring sensible defaults so you can start in minutes.
- Handles dependency injection, web APIs, security, data access, and more.
- Massive ecosystem and community; the default for most enterprise Java.
- You'll learn Spring Boot in depth in a dedicated lesson.
The alternatives
| Framework | Known for |
|---|---|
| Spring Boot | The all-rounder; huge ecosystem; enterprise standard |
| Quarkus | Fast startup, low memory - built for containers & cloud |
| Micronaut | Compile-time DI, fast startup, minimal reflection |
| Jakarta EE | The standards-based enterprise platform (formerly Java EE) |
| Vert.x | Reactive, event-driven, high-concurrency systems |
Why the newer frameworks exist
Quarkus and Micronaut arose for the cloud-native era: containers and serverless reward fast startup and low memory. They do more work at compile time (rather than runtime reflection) to boot in milliseconds. Spring has responded with its own native-image support (Spring Native / GraalVM).
How to choose
Default to Spring Boot while learning
For most applications - and certainly while you're learning - Spring Boot is the pragmatic choice: enormous community, endless tutorials, and jobs everywhere. Reach for Quarkus or Micronaut when ultra-fast startup and low memory in containers are top priorities. Match the tool to the requirement, not the hype.
Questions that guide the choice:
- Team familiarity? Use what your team knows well.
- Cloud/serverless with tight memory & startup? Consider Quarkus/Micronaut.
- Need the biggest ecosystem and hiring pool? Spring Boot.
- Standards-based, vendor-neutral enterprise? Jakarta EE.
Beyond web frameworks
The Java ecosystem also has specialized frameworks and libraries you'll encounter:
- Persistence: Hibernate/JPA (next lesson), jOOQ, MyBatis
- Testing: JUnit, Mockito, Testcontainers
- Serialization: Jackson (JSON), Gson
- Reactive: Project Reactor, RxJava
Quick check
What does 'Inversion of Control' mean in a framework?
Key takeaways
- Frameworks provide reusable application plumbing so you focus on features.
- Inversion of Control: the framework drives the app and calls your code at the right time.
- Spring Boot is the dominant, all-round Java framework with a huge ecosystem.
- Quarkus and Micronaut target cloud-native needs: fast startup and low memory.
- Jakarta EE is the standards-based enterprise platform; Vert.x targets reactive, high-concurrency systems.
- Default to Spring Boot while learning; choose alternatives when specific requirements demand them.
Most applications need to store data in a database elegantly. Next, we cover ORM and persistence with JPA and Hibernate.