Spring Boot: Simplify the startup, development, configuration and deployment of a Spring project
Programme
Introduction
Spring Boot Project
Creating a Spring Boot application
- Spring Initializr
- Spring Tool Suite
- The Maven projects
- Main class
- Execution
- Packaging
Fundamental concepts
- Convention over configuration
- Auto configuration
- Starters
Dependency injection
- Weak coupling
- Dependency injection types
- Settings with Java Config
- Lifecycles
- Profiles
Configuration properties
- Configuration properties
- Properties or Yaml files
- Defining priorities
- Spring Boot banner
Logging and traces
- Configuring traces
- Using an implementation
Spring Boot Devtools
- Automatic restart
- Remote operation
Web application with Spring MVC
- MVC reminders
- General architecture of Spring MVC
- Controllers
- Mapping with a request
- Extracting data from the request
- Data format
- Templating with Thymeleaf
Spring Boot and Spring MVC
- Added values of Spring Boot
- Customization of the configuration
- Static content and webjar
Servlet container
- Choosing a container
- Container configuration
- Graceful shutdown
Persistence with Spring Data
- Repositories
- Query deduction strategy
- Method definition
- @Query annotation
Configuration of a data source
- Support for an embedded or external database
- Connection pool configuration
Spring Data JPA
- JPA Repository
- Supported keywords for JPA
- @Query and @NamedQuery annotations
- Projections
- Criteria API support
- Transaction and lock management
- Custom implementation of a repository
REST services with Spring MVC
- Controllers
- JSON serialization with Jackson
- Error handling
Invoking a remote REST service
- RestTemplate class
- WebClient class
Documenting an API
- Swagger support with SpringFox
- Configuration
- Swagger UI
CORS
- Overview
- Support in a Spring application
Spring Data REST
- HAL
- Exposed API
- Configuration and customization
Cache
- Activation and implementation
- Cache manager
Automated tests
Unit tests
- With JUnit, Mockito and Maven
Integration tests
- Spring Boot annotations
- Integration tests with Maven
- Testing with JSON data
REST services integration tests
REST client integration tests
- @RestClientTest annotation
- MockRestServiceServer class
Integration tests of repositories
- @DataJpaTest annotation
- Initialization of the test database
Deployment
Spring Boot Actuator
- Endpoints
- Configuration of endpoints
- Custom endpoints