Home Blog Spring Boot
51 Guides · Java & Spring

Spring Boot Tutorials

A complete learning path for Spring Boot — from your first application to production-grade microservices. Covers core IoC, REST APIs, JPA, security with JWT and OAuth2, reactive programming, testing, observability, GraalVM native images and Spring AI.

Getting Started

Overview

Spring Boot Guide: Building Modern Applications

Overview of Spring Boot's value proposition, auto-configuration, starter dependencies and project structure for modern Java applications.

Read guide →
Hello World

First Application: Hello World with Spring Boot

Create, build and run your first Spring Boot app — project setup, main class, embedded Tomcat and your first REST endpoint.

Read guide →
Architecture

Spring Boot Architecture

Layered architecture, auto-configuration internals, application context lifecycle and how the starter mechanism works end-to-end.

Read guide →
Auto-Config

Auto-Configuration and Starters Explained

How @EnableAutoConfiguration works, conditional beans, spring.factories and debugging auto-configuration decisions at startup.

Read guide →
Annotations

@SpringBootApplication and Core Annotations

@SpringBootApplication, @RestController, @Service, @Repository, @Component and the full stereotype annotation hierarchy.

Read guide →
CLI

Spring Boot CLI

Rapid prototyping with the CLI, Groovy scripts, project initialization and running apps without a full Maven or Gradle build.

Read guide →

Spring Core and IoC

IoC Container

Spring IoC Container

Inversion of Control, ApplicationContext, BeanFactory vs ApplicationContext and DI patterns: constructor, setter and field injection.

Read guide →
Bean Lifecycle

Bean Lifecycle in Spring

Bean creation phases, @PostConstruct and @PreDestroy, BeanPostProcessor, InitializingBean and DisposableBean interfaces.

Read guide →
Bean Scopes

Bean Scopes in Spring

Singleton, prototype, request, session and application scopes — when to use each and how scope mismatches cause subtle bugs.

Read guide →
@Bean vs @Component

@Bean vs @Component vs @Configuration

When to use @Bean in @Configuration, @Component stereotypes, and the difference between lite and full @Configuration mode.

Read guide →
Qualifiers

@Primary and @Qualifier Annotations

Resolving ambiguous bean injection with @Primary and @Qualifier, named beans and custom qualifier annotations.

Read guide →
PostProcessors

Bean Post Processors

BeanPostProcessor and BeanFactoryPostProcessor hooks, custom post-processors for cross-cutting concerns and real-world use cases.

Read guide →
Proxies

Spring Proxies Guide

JDK dynamic proxies vs CGLIB proxies, how @Transactional and @Cacheable work via proxies and self-invocation pitfalls.

Read guide →
AOP

Spring AOP Guide

Aspect-Oriented Programming, @Aspect, @Before, @After, @Around advice, pointcut expressions and logging and metrics use cases.

Read guide →
Events

Spring Events

ApplicationEvent, @EventListener, async events with @Async, transactional events and decoupled components via the event bus.

Read guide →
Lazy Loading

@Lazy vs @DependsOn

Deferring bean initialization with @Lazy, controlling creation order with @DependsOn and startup performance implications.

Read guide →
Circular Deps

Circular Dependency Handling

Why circular dependencies occur, detection, @Lazy injection as a fix, constructor injection best practices and architectural solutions.

Read guide →
Component Scan

Spring Component Annotations

@Component, @Service, @Repository, @Controller — semantic differences, component scanning and custom stereotype annotations.

Read guide →
Encapsulation

How Spring Breaks Java Encapsulation

How Spring's reflection-based injection bypasses private fields, implications for immutability and why constructor injection is safer.

Read guide →

REST APIs and Web

REST

Spring Boot REST API Guide

@RestController, @RequestMapping, path variables, request bodies, ResponseEntity, error handling with @ControllerAdvice and DTOs.

Read guide →
Status Codes

API Status Codes and Best Practices

HTTP status code usage, @ResponseStatus, custom error responses, ProblemDetail (RFC 9457) and global exception handling.

Read guide →
API Styles

API Architecture Styles Compared

REST vs GraphQL vs gRPC vs WebSocket — choosing the right API style, Spring Boot support for each and trade-offs by use case.

Read guide →
WebFlux

Reactive Programming with Spring WebFlux

Project Reactor, Mono and Flux, reactive controllers, functional routing, R2DBC for reactive database access and backpressure.

Read guide →

Data Access

JPA

Spring Boot JPA: Mastering Data Persistence

Entities, repositories, JPQL, Spring Data query methods, pagination, projections, lazy loading and N+1 query prevention.

Read guide →
JDBC

Spring Boot JDBC Guide

JdbcTemplate, NamedParameterJdbcTemplate, connection pooling with HikariCP, batch operations and when JDBC beats JPA.

Read guide →
Transactions

Spring Transactions Guide

@Transactional propagation and isolation levels, programmatic transactions, read-only transactions and distributed patterns.

Read guide →
Caching

Advanced Caching Strategies

@Cacheable, @CacheEvict, @CachePut, Redis integration, cache key strategies, TTL configuration and cache-aside pattern.

Read guide →
JDBC Error

JDBCConnectionException Quick Fix

Diagnosing "Unable to acquire JDBC Connection" — pool exhaustion, connection leaks, HikariCP tuning and health checks.

Read guide →

Security

Security Basics

Spring Boot Security Basics

Spring Security auto-configuration, SecurityFilterChain, in-memory users, form login, HTTP Basic and securing REST endpoints.

Read guide →
OAuth2

OAuth2 Implementation in Spring Boot

Authorization server, resource server, Spring Security OAuth2 client, PKCE flow, scopes and token introspection.

Read guide →
OAuth2 Social Login

OAuth2 Login with GitHub and Spring Security

Social login with GitHub, Google and Facebook via Spring Security OAuth2 client and custom principal extraction.

Read guide →
Advanced Security

Advanced Security in Spring Boot

Method-level security with @PreAuthorize, CORS configuration, CSRF protection, rate limiting, audit logging and security testing.

Read guide →

Configuration and Profiles

Config

Configuration with YAML and Properties

application.yml vs application.properties, @ConfigurationProperties, type-safe config binding, validation and config server.

Read guide →
Profiles

Profiles and Environment Configuration

@Profile beans, profile-specific YAML files, activating profiles via env vars, default profiles and multi-environment patterns.

Read guide →
Lifecycle

Spring Boot Application Lifecycle

Startup phases, ApplicationEvents, SmartLifecycle, graceful shutdown configuration and hook ordering at start and stop.

Read guide →
Maven

Installing a JAR to Local Maven Repository

mvn install:install-file for third-party JARs, local repository structure, POM-only dependencies and CI integration tips.

Read guide →

Testing

Testing

Advanced Testing in Spring Boot

@SpringBootTest, @WebMvcTest, @DataJpaTest, MockMvc, Testcontainers for integration tests, test slices and WireMock for HTTP stubs.

Read guide →
Mockito

@MockitoBean in Spring Boot Tests

@MockitoBean (Spring Boot 3.4+), @Mock vs @MockBean, mocking service dependencies, verify interactions and ArgumentCaptor.

Read guide →

Messaging and Event-Driven

Messaging

Advanced Messaging and Event-Driven Architecture

Spring AMQP with RabbitMQ, @KafkaListener, Spring Integration, event sourcing patterns and reliable messaging with dead-letter queues.

Read guide →

Observability and Performance

Actuator

Spring Boot Actuator

Health endpoints, metrics with Micrometer, info endpoint, custom health indicators, securing actuator endpoints and Prometheus.

Read guide →
Monitoring

Advanced Monitoring and Observability

Distributed tracing with Micrometer Tracing, Zipkin/Jaeger integration, structured logging with Logback and Grafana dashboards.

Read guide →
Performance

Spring Boot Performance Optimization

Startup time reduction, lazy initialization, connection pool tuning, JVM flags, virtual threads (Java 21) and memory optimization.

Read guide →
Server Error

Unable to Start Web Server: Quick Fix

Diagnosing ApplicationContextException — port conflicts, missing servlet container dependency and embedded server configuration errors.

Read guide →

Microservices and Cloud

Microservices

Microservices and Distributed Systems

Service discovery with Eureka, load balancing, circuit breakers with Resilience4j, API gateway patterns and distributed tracing.

Read guide →
Kubernetes

Spring Boot with Kubernetes and Docker

Containerizing Spring Boot apps, K8s Deployments, ConfigMaps, liveness/readiness probes, Helm charts and rolling updates.

Read guide →
GraalVM

Spring Boot with GraalVM Native Image

Ahead-of-time compilation, GraalVM native build tools, reflection hints, native testing and startup vs throughput trade-offs.

Read guide →
AOT

Spring AOT Fundamentals

Ahead-of-Time processing in Spring 6, how AOT differs from JIT compilation, generated source files and GraalVM compatibility.

Read guide →
Comparison

Spring Boot vs Quarkus vs Micronaut 2026

Head-to-head: startup time, memory footprint, native image support, ecosystem maturity and when to choose each framework.

Read guide →

Spring AI

Spring AI

Spring AI vs LangChain4j 2026

Java developer's guide to LLM integration: Spring AI ChatClient, RAG pattern, LangChain4j agents and which to choose.

Read guide →