Learn Spring Boot with the in-depth tutorials, covering basic concepts such as annotations and autoconfiguration to advanced concepts such as packaging, deployment, and monitoring. Most of these Spring Boot tutorials cover the changes introduced in Spring Boot 3 release, and others should work automatically after migrating to Java 17 and Jakarta namespaces.
1. Getting Started with Spring Boot
- Difference between Spring and Spring Boot
- Spring Boot Hello World Example: Beginners Guide
- Introduction to Spring Boot Starter Parent
- Creating a Multi-Module Maven Project
- CRUD Application with Thymeleaf
2. Spring Boot Basics
- Change the default port of an embedded server
- Changing Context Path
- Disable banner at startup
- Get all loaded beans with Class Type Information
- Custom PropertyEditor Configuration Example
- CommandLineRunner interface example
- Configure Jetty Server
- Embedded Tomcat Configuration
- Read a file from the resources folder
- Inject Application Arguments in @Bean and @Compoment
- Configuring Properties
3. Spring Boot Annotations
- Spring Boot Annotations
- @Repository Annotation
- @SpringBootApplication Autoconfiguration
- @Scheduled Annotation
- Difference Between @Controller and @RestController
- @Autowired Annotation in Spring Boot
- @Import and @ImportResource Annotations
4. REST
- Building REST APIs with Spring Boot
- Create Jersey REST APIs with Spring Boot
- Internationalization with Spring Boot REST
- Spring Boot REST – Response Gzip Compression
- Spring Boot REST – Consume and Produce JSON
- Adding Custom Headers to Spring Boot REST APIs
- Spring retry module example with spring boot
- Generate Spring Boot REST Client with Swagger
- Springdoc-OpenAPI for Spring Boot REST Documentation
- Spring Boot OpenFeign Client Tutorial
- Produce an XML Response with Spring WebMVC
- Spring REST JSON Response Example
- REST API Error Handling in Spring Boot
- Handling XML Request and Response Body
- Custom Error Pages (MVC Exception Views)
- REST API for Excel File Download
- REST API for Long-Running Tasks
- REST API Timeout (with Examples)
- JSON Response for Access Denied Requests
- REST CRUD Example with JPA Configuration
- HTTP OPTIONS Request Handler
- File Upload REST API Example
- MVC REST Controller Example & Unit Tests
5. Persistence
- Spring Boot with H2 Database
- Spring boot JPA + Hibernate + HikariCP Configuration
- Spring Boot DataSource Configuration
- Separate DataSource for Test, Dev and Prod
- Spring boot 2 and Ehcache 3 example
- Spring Boot – CRUD Application
- Spring boot pagination and sorting example
- Spring boot crud operations example with hibernate
- Configure Hibernate with Spring Boot
- Spring boot caching tutorial with example
- Caffeine Cache with Spring Boot
- Guide to Cassandra with Spring Boot
- DynamoDB CRUD Example with Spring Boot 3
- [Solved] CommandAcceptanceException: Error executing DDL
- [Solved] Spring Boot H2 – Schema not found
- Configure Multiple DataSources
- Load Initial Data with SQL Scripts on Startup
- Log SQL with Parameter Values (Hibernate)
- JpaRepository Example
6. Security
- CORS with Spring Boot
- Spring Boot SSL [https] Example
- Adding Role-Based Security with Spring Boot REST APIs
- OAuth2 Authorization and Resource Servers
- Securing Spring Boot REST API with Basic Auth
- OAuth2 Login with Keycloak and Spring Security 3
- Keycloak and TestContainer Example
7. Logging, Monitoring and Deployment
- Spring Boot Profiles
- Spring Boot Dev Tools
- Spring Boot Actuator
- AOP with Spring Boot
- Spring Boot war Packaging
- Spring Boot Embedded Server Logs
- Dockerizing a Spring Boot Application
- Create a Fat Jar App with Spring Boot
- Guide to Logging in Spring Boot
- Spring Boot log4j2 properties example
- Spring Boot log4j2.xml example
- Spring Boot Logging with application.yml
- Spring Boot Logging with application.properties
- Spring Boot Profile-specific Logging
- Spring Boot Console Logging Configuration
- Spring Boot Multiple Log Files
- Spring Boot Logging with Lombok
- Spring Boot Performance Logging
- Spring Boot Actuator /info endpoint
- Spring Boot Gradle Plugin
- Deploy a Dockerized App to AWS
- Deploy an App to AWS Elastic Beanstalk
- Deploy as Traditional WAR on Tomcat
- Run a Spring Boot + Postgres App on Podman
- Logging Levels Example
- Structured Logging in JSON Format
- Why and How to Use SpringBootServletInitializer
- [Solved] App Automatically Closes with Exit Code 0
8. Testing
- Guide to Test a Spring Boot App
- Testing REST Controllers with Spring Boot @RestClientTest
- Spring Boot @DataJpaTest
- Testing in Spring Boot 2
- Spring boot @MockBean Example
- Testing Async REST APIs with @WebFluxTest and WebTestClient
- Spring boot integration test example
- Unit Testing a Spring Boot REST Controller
- Spring boot – @SpringBootTest
- Spring boot – @TestConfiguration
- Junit 5 with Spring boot 2
- Spring Boot 2, Mockito and JUnit 5 Example
- Spring boot MockMVC example
- Testing POST APIs using Spring Boot TestRestTemplate
- Integration Testing by Mocking REST APIs using WireMock
- Testcontainers and JUnit 5 Example
- Test an Async REST Controller with MockMvc
9. Spring RestTemplate
- Intro to Spring RestTemplate
- Basic Auth with Spring RestTemplate
- Configuring Timeouts with Spring RestTemplate
- Spring Boot RestTemplate POST Example
- Spring Boot RestTemplate GET Example
- Spring boot JUnit example with RestTemplate
- Intro to Spring RestTemplateBuilder
- Logging Request and Response with Spring RestTemplate
- Configuring Spring RestTemplate with HttpClient
- REST API Request Validation with Spring Boot
- Building HATEOAS Links with Spring Boot REST
- Intro to Spring RestTemplate
- Basic Auth with Spring RestTemplate
- Configuring Timeouts with Spring RestTemplate
- Spring Boot RestTemplate POST Example
- Spring Boot RestTemplate GET Example
- Spring boot JUnit example with RestTemplate
- Intro to Spring RestTemplateBuilder
- Logging Request and Response with Spring RestTemplate
- Configuring Spring RestTemplate with HttpClient
- REST API Request Validation with Spring Boot
- Building HATEOAS Links with Spring Boot REST
10. Spring WebClient
- Spring WebClient Tutorial
- Spring WebClient vs RestTemplate
- Spring WebClient POST Examples
- Setting Timeouts in WebClient
- Access ChatGPT APIs with Spring WebClient
11. Async
- Building @Async REST APIs with Spring @EnableAsync
- Spring Boot Async Controller with SseEmitter
- Spring Boot Async Controller with ResponseBodyEmitter
- Unit Testing Spring Async Rest Controller with MockMvc
- Spring Boot Async Rest Controller with Callable Interface
- RSocket with Spring Boot
12. Spring Boot Advance Topics
- Spring Boot Interview Questions
- Spring Boot Ehcache 2 Example
- Spring Boot SOAP Client – WebServiceTemplate Example
- Spring boot RSS feed with Rome
- Spring Boot SOAP Webservice Example
- Spring Boot JMSTemplate with Embedded ActiveMQ
- Spring Boot Send an email with an attachment
- Spring Boot JSP View Resolver Example
- Gson with Spring boot
- Spring Boot Filter
- Spring Boot Remoting – Spring RMI annotation example
- Spring Boot and Angular Application
- Spring Boot and GraphQL
- How to Configure MyBatis with Spring Boot
- Creating a Jasper Report with Spring Boot
- Apache Kafka using Spring Boot
- Kafka Streams Example
- Quartz Scheduler: Jobs, Triggers, JDBC Store
- @RateLimiter and @Bulkhead with Resilience4j 2
- Transaction-Aware Caching Example
- Getting Started with JHipster
- Creating and Building a Project with Gradle
- Different Ways to Load Property Files
- Non-web Application Configuration
- DynamoDB with Spring Cloud AWS DynamoDbTemplate
- Vue.js CRUD Application
- File Upload with Angular
- Multiple File Uploads with React
- Displaying Images with Thymeleaf
- Thymeleaf Tutorial: Forms, Fragments, Tests
13. What’s New in Spring Boot 3
- Spring ProblemDetail and ErrorResponse
- Spring Declarative HTTP Client using @HttpExchange
- @RSocketExchange with Example
- PartEvent API to Stream Multipart Form Uploads
- Spring Boot @ServiceConnection
- Using Docker Compose with Spring Boot
- Spring RestClient (with Examples)
- Spring Boot 4 Tutorial: What’s New in 4.0 and 4.1
Happy Learning !!