Skip to content
Commitwise
Menu

Java Backend

Server-side Java with Spring Boot: REST APIs, databases, transactions, security, testing and running in production.

13 lessons
0 of 13 completed
  1. 01

    Modern Java: records, sealed types and virtual threads

    Write today's Java: records for data, sealed interfaces and pattern matching instead of instanceof chains, virtual threads for simple blocking code that scales, and the smaller Java 17-25 features worth using, with Kotlin side by side.

    5–25 min beginner Junior & senior

  2. 02

    Spring Boot Basics

    Start a Spring Boot backend from scratch and understand what happens when it starts, from starters and auto-configuration to beans, dependency injection and configuration, in Java and Kotlin.

    6–25 min beginner Junior & senior

  3. 03

    Building a REST API

    Build the API your mobile app talks to with Spring Boot or Jakarta EE, with controllers, DTOs, validation, status codes and clean error responses, in Java and Kotlin.

    5–25 min beginner Junior & senior

  4. 04

    JPA and Hibernate

    Map entities and relationships, query with Spring Data repositories or Jakarta Persistence, understand lazy loading and the persistence context, and avoid the N+1, LazyInitializationException and pagination traps.

    5–25 min intermediate Junior & senior

  5. 05

    Transactions

    Keep data consistent with @Transactional in Spring or Jakarta EE, know exactly when a transaction rolls back, prevent lost updates with optimistic locking, and keep slow calls and messages out of your transactions.

    7–30 min intermediate Junior & senior

  6. 06

    Spring Security, JWT and OAuth2

    Protect a Spring Boot API with a security filter chain, validate JWT access tokens from an OAuth2 authorization server, check permissions per endpoint and per object, and get mobile login right with authorization code and PKCE, in Java and Kotlin.

    4–25 min intermediate Junior & senior

  7. 07

    Testing with JUnit, Mockito and Testcontainers

    Test a Spring Boot backend at the right level, from fast unit tests with mocks to web-layer slices with MockMvc and integration tests against a real PostgreSQL in Testcontainers, in Java and Kotlin, and avoid tests that pass while production fails.

    4–25 min intermediate Junior & senior

  8. 08

    Configuration and profiles

    Configure a Spring Boot service the same way in every environment with application.yml, typed and validated @ConfigurationProperties, profiles and environment variables, and know which value wins when the same setting is defined in five places.

    4–25 min beginner Junior & senior

  9. 09

    Caching with Redis

    Speed up a Spring Boot or Jakarta EE API with Redis and cache annotations (Spring's or JCache's), choose keys and TTLs, keep cached data correct after updates, and survive stampedes, deploys and Redis outages.

    5–25 min intermediate Junior & senior

  10. 10

    Messaging with Kafka

    Publish and consume events with Apache Kafka and Spring Boot, using keys for ordering, consumer groups for scale, retries and dead-letter topics for failures, and idempotent consumers and the outbox pattern so no event is lost or applied twice.

    4–30 min intermediate Junior & senior

  11. 11

    Observability: logs, metrics and tracing

    Know what your backend is doing in production: structured logs with trace ids, Micrometer metrics for rate, errors and latency percentiles, and distributed traces across services, in Spring Boot with Java and Kotlin, plus the mistakes that make each one useless.

    4–25 min intermediate Junior & senior

  12. 12

    Docker and deployment

    Package a Spring Boot service as a small, secure, layered container image, size the JVM correctly for container memory limits, and deploy without downtime with health probes, rolling updates and expand-and-contract database migrations.

    4–25 min intermediate Junior & senior

  13. 13

    JVM performance and garbage collection

    Understand how the JVM's garbage collectors and JIT compiler affect a Spring service's latency and memory, choose between G1 and ZGC, and find real bottlenecks with metrics, JFR, profilers, heap dumps and JMH instead of guessing.

    4–25 min advanced Junior & senior

Esc

Type to search the whole site.