Skip to content

simantaturja/Learn-Java-Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 

Repository files navigation

β˜• Java & Spring β€” The Modern Learning Roadmap

A curated, opinionated path from zero to production-grade Java and Spring Boot β€” refreshed for Java 25 (LTS) and Spring Boot 4 / Spring Framework 7.

Java 25 LTS Spring Boot 4 Spring Framework 7 Jakarta EE PRs welcome License

Whether you're writing your first main method or hardening a microservice for production, this repo maps what to learn, in what order, with the best free resource for each step. Every link is hand-picked; the roadmap is kept current with the modern Java platform (records, sealed types, pattern matching, virtual threads) and the Spring Boot 3/4 generation.


πŸ—ΊοΈ The Roadmap at a Glance

flowchart TD
    A["1 Β· Java Fundamentals"] --> B["2 Β· Object-Oriented Programming"]
    B --> C["3 Β· Core APIs & Intermediate Java"]
    C --> D["4 Β· Modern Java (14 β†’ 25)"]
    D --> E["5 Β· Advanced Java & the JVM"]
    C --> F["6 Β· Testing"]
    E --> G["7 Β· Clean Code, SOLID & Design Patterns"]
    F --> G
    C --> H["8 Β· Build Tools"]
    G --> I["9 Β· Databases & Persistence"]
    I --> J["10 Β· Jakarta EE & Servlets"]
    J --> K["11 Β· Spring Framework & Spring Boot"]
    H --> K
    K --> L["12 Β· Cloud-Native, Microservices & Spring AI"]
    L --> M["13 Β· Practice, Projects & Roadmaps"]
Loading

🧭 How to Use This Guide

  • Follow the chapters in order if you're new β€” each builds on the last.
  • Jump to a chapter if you're filling gaps (the roadmap above shows dependencies).
  • Look for these markers on individual resources:
    • πŸŽ₯ video Β· πŸ“– deep-read / official docs Β· ⚑ quick reference Β· πŸ§ͺ hands-on Β· ⭐ start here Β· πŸ†• modern (Java 17+ / Spring Boot 3+)
  • LTS-first mindset: target Java 21 or Java 25 and Spring Boot 4.x for anything new. Older material is still valuable for concepts β€” just prefer modern syntax when you code.

πŸ“š Table of Contents

  1. Fundamentals of Java
  2. Object-Oriented Programming
  3. Core APIs & Intermediate Java
  4. Modern Java (14 β†’ 25)
  5. Advanced Java & the JVM
  6. Testing
  7. Clean Code, SOLID & Design Patterns
  8. Build Tools
  9. Databases & Persistence
  10. Jakarta EE & Servlets
  11. Spring Framework & Spring Boot
  12. Cloud-Native, Microservices & Spring AI
  13. Practice, Projects & Roadmaps

🌱 Chapter 1: Fundamentals of Java

Goal: read, write, and run simple Java programs. Understand types, control flow, and errors.

⭐ Start here: dev.java β€” the official learning portal from Oracle Β· The Java Tutorials (Oracle)

1.1 Primitives & Variables

1.2 Operators & Conditionals

1.3 Loops

1.4 Strings

1.5 Exception Handling


🧱 Chapter 2: Object-Oriented Programming

Goal: model problems with classes and objects; master the four pillars.

2.1 Classes, Interfaces, Abstract Classes & Access Modifiers

2.2 Encapsulation

2.3 Abstraction

2.4 Inheritance

2.5 Polymorphism

2.6 Overloading & Overriding

2.7 Keywords, Members & Data Objects


πŸ”§ Chapter 3: Core APIs & Intermediate Java

Goal: fluently use the standard library β€” collections, generics, streams, and functional Java.

3.1 Collections Framework

Java Collections Framework hierarchy

Fig: Collections Framework hierarchy. Source: javatpoint

List

Set

Map

Conversions & utilities

3.2 Generics

3.3 Lambdas, Functional Interfaces & Streams

3.4 Optional

3.5 Annotations & Reflection

3.6 Date & Time API

3.7 Command-Line Tools


πŸš€ Chapter 4: Modern Java (14 β†’ 25)

Goal: write idiomatic modern Java. These features define how professional code looks today β€” favour them over legacy patterns.

4.1 Language Features Every Modern Java Dev Should Know

4.2 What's New, Version by Version

LTS releases (bold) are what you should target for production: Java 8, 11, 17, 21, 25.

  • Java 8 β€” lambdas, streams, Optional, new Date/Time
  • Java 9 β€” modules (JPMS), var in the REPL, collection factory methods
  • Java 10 β€” var local type inference
  • Java 11 β€” HTTP Client, String methods, run single-file source
  • Java 12 Β· Java 13 Β· Java 14 β€” switch expressions, records (preview), text blocks (preview)
  • Java 15 β€” text blocks, sealed classes (preview)
  • Java 16 β€” records & pattern matching for instanceof finalized
  • Java 17 β€” sealed classes finalized; migration guide 8 β†’ 17
  • Java 18 β€” UTF-8 by default, simple web server
  • Java 21 β€” virtual threads, pattern matching for switch, record patterns, sequenced collections
  • Java 22 β€” stream gatherers (preview), unnamed variables
  • Java 25 β€” πŸ†• latest LTS: scoped values, compact source files & instance main, structured concurrency
  • πŸ“– Full JDK release/JEP index (OpenJDK)

βš™οΈ Chapter 5: Advanced Java & the JVM

Goal: reason about concurrency and understand what happens beneath your code.

5.1 Concurrency β€” Classic

5.2 Concurrency β€” Modern (Project Loom) πŸ†•

5.3 The JVM: Memory & Garbage Collection

5.4 Miscellaneous Deep Cuts


πŸ§ͺ Chapter 6: Testing

Goal: a habit, not a chore. Modern Java hiring assumes you can write clean, fast, isolated tests.

6.1 Unit Testing

6.2 Mocking

6.3 Integration Testing with Testcontainers πŸ†•

6.4 Testing Spring Applications


✨ Chapter 7: Clean Code, SOLID & Design Patterns

Goal: write code other humans (and future-you) can change safely.

7.1 Clean Code

7.2 SOLID Principles

7.3 Design Patterns


πŸ› οΈ Chapter 8: Build Tools

Goal: build, test, and package projects reproducibly. Learn one deeply, know the other.

8.1 Maven

8.2 Gradle

8.3 The Wrapper


πŸ—„οΈ Chapter 9: Databases & Persistence

Goal: move data in and out of a relational database, the Java way.

Spring's persistence layer (Spring Data JPA, JdbcTemplate) is covered in Chapter 11.9.


🌐 Chapter 10: Jakarta EE & Servlets

Goal: understand the web foundation Spring MVC is built on. Note: the javax.* namespace is now jakarta.* (Jakarta EE 9+).


πŸƒ Chapter 11: Spring Framework & Spring Boot

Goal: build production REST services with Spring Boot 4 / Spring Framework 7. Target Boot 4.x for new work (Boot 3.5 reached end of open-source support on 30 June 2026).

⭐ Start here: Learn Spring Boot Series (Baeldung) Β· πŸ“– Spring Boot Reference Docs Β· πŸ§ͺ start.spring.io β€” bootstrap a project

11.1 Overview of the Spring Framework

11.2 Beans, Inversion of Control & Dependency Injection

11.3 Spring MVC & Spring Boot

11.4 Building REST APIs

11.5 Validation

11.6 Exception Handling

11.7 Configuration, Properties & Profiles

11.8 JSON, Templates & Serialization

11.9 Persistence: Spring JDBC & Spring Data JPA

11.10 Testing Spring Applications

11.11 Spring Security πŸ†•

Spring Security 6 uses the lambda DSL and requires the jakarta.* namespace β€” many older tutorials are out of date, so prefer the resources below.

11.12 Actuator & Observability πŸ†•

11.13 Reactive Spring (WebFlux) πŸ†•


☁️ Chapter 12: Cloud-Native, Microservices & Spring AI

Goal: take a service beyond localhost β€” package it, distribute it, observe it, and add AI.

12.1 Microservices with Spring Cloud

12.2 Containerization

12.3 Spring AI πŸ†•


🎯 Chapter 13: Practice, Projects & Roadmaps

Goal: knowledge only sticks when you build. Pick a track and ship something.

13.1 Visual Roadmaps

13.2 Coding Practice

13.3 Reference & Cheat Sheets

13.4 Project Ideas to Build

Progress from small to production-shaped:

  1. CLI to-do app β€” collections, file I/O, exception handling.
  2. REST API for a bookstore β€” Spring Boot, Spring Data JPA, validation, exception handling, tests.
  3. Secured multi-user API β€” add Spring Security (JWT), profiles, and Testcontainers integration tests.
  4. Dockerized microservice β€” containerize it, add Actuator health checks and observability.
  5. AI-assisted feature β€” add a Spring AI chat/summarize endpoint backed by a model.

🀝 Contributing

Spotted a dead link, an out-of-date resource, or a missing modern topic? Contributions are very welcome:

  1. Open an issue describing the fix or the resource you'd add (with a short note on why it's good).
  2. Or submit a pull request β€” keep link descriptions concise, prefer up-to-date sources, and place the link in the right chapter.

Great additions: modern-Java resources, hands-on tutorials, and anything that replaces an outdated link with a current one.


Maintained for educational purposes. Curated for Java 25 (LTS) and Spring Boot 4 / Spring Framework 7. Last updated: July 18, 2026.

About

A beginner friendly material to start with. These resources can be used as training material for freshers.

Resources

Stars

157 stars

Watchers

4 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors