Spring Advanced | | Software Development
Spring Advanced
Duration
40 hours
Location
Online
Language
English
Code
JVA-075
€ 800 *
Training for 7-8 or more people? Customize trainings for your specific needs
Description
Our training focuses on the practical topics of Spring Framework such as how to use Spring REST, HATEOAS and CORS, documenting REST services, serializing and limiting the data passed to the client and more.We will also cover the use o @Transactional annotation, optimistic transactions, JWT authorization, OAuth2 authorization server, practical usage of reactive programming with WebFlux as well as testing Spring services, Scheduler & Actuator, and deploying to Docker.

After completing the course, a certificate
is issued on the Luxoft Training form
is issued on the Luxoft Training form
Objectives
- Introduce you to advanced Spring Framework topics and give examples of how they can be used
Target Audience
- Java Developers
- Software Architects
Prerequisites
- Good knowledge of Java, knowledge of Spring
Roadmap
Spring Data REST advanced
Object mapping and validation
Transactions
Security for REST services / JWT authorization and roles management
Reactive Spring with WebFlux
Testing Spring services (mock objects, TestContext framework)
Spring Schedulers
Spring caching
Spring Boot Actuator
Deploying Spring application
- Introduction. Spring REST overview
- Conditional operations with headers (ETag, If-Match, If-None-Match, If-modified-since)
- REST events
- REST maturity model
- Spring HATEOAS
- API RestTemplate and WebClient for implementing REST services
- Documenting REST service with Swagger and SpringFox
- Practice
Object mapping and validation
- Limiting data passed to the client: @JsonIgnore, nullifying fields, DTO
- Projections and excerpts with Spring Data REST
- Using MapStruct for automatic mapping to DTO
- Custom serializers and deserializers
- Validation of model with javax.validation annotations, custom annotations
- Practice
Transactions
- @Transactional annotation
- Transaction isolation levels
- Transaction propagation
- Exception handling in transactions
- The problem of calling a transaction from the same bin
- Optimistic locking
- Connecting several DBs to the project
- Distributed transactions and SAGA patterns
Security for REST services / JWT authorization and roles management
- Approaches to security handling in Spring
- Building UAA server with OAuth2
- JWT tokens
- Using Spring Security to define role-based access, demonstrating examples
- Practice
Reactive Spring with WebFlux
- Reactive approach overview
- Reactive flows specification in Java 9
- Class Mono and Flux
- Reactive operators
- R2DBC drivers
- Reactive Spring Data
- Building REST API with WebFlux
- WebClient for reactive data retrieval
- RSocket protocol (1h)
- Reactive interaction with RabbitMQ
- Reactive patterns and benchmarks
- Practice
Testing Spring services (mock objects, TestContext framework)
- Unit testing with Mockito
- Integration testing
- Spring testing annotations
- TestContext framework
- Server-Side REST Tests
- REST services testing in IntelliJ IDEA
- Testing WebFlux
- Practice
Spring Schedulers
- @Scheduled annotation
- fixedRate, fixedDelay, initialDelay
- using CRON expressions
- Practice
Spring caching
- Using caching
- EhCache usage and settings
- @Cacheable
- @CacheEvict, @CachePut
- @CacheConfig
- Conditional caching
- Java-based caching
- Spring Data caching
- Spring caching based on EhCache
- EhCache configuration
- Practice
Spring Boot Actuator
- Actuator endpoints
- Metrics in Spring Boot
- Monitoring and management over HTTP
- Spring Boot Admin management tool
Deploying Spring application
- Deploying into Docker
- Deploying Spring application with nginx as a front server (incl. load balancing)
- HTTP caching with NGINX
- Deploying Spring application with nginx - containerized setup with docker-compose
- Practice
Schedule and prices
View:
Register for the next course
Registering in advance ensures you have priority. We will notify you when we schedule the next course on this topic
Courses you may be interested in
Spring Framework 5 for Application Development
In this training you’ll learn how to use the core features of the Spring Framework, create production ready applications and discover how to use Spring in your projects.
Spring Security
This training offers participants an overview of the framework. You will learn how to build secured enterprise J2EE application using Spring Security framework.
Java Advanced: Functional, Asynchronous, and Reactive Programming
This training focuses on the contemporary functional, asynchronous, and reactive approaches to Java development. It covers the examination of NIO2, CompletableFurure, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, and RSocket.