Spring Advanced

This course focuses on topics necessary for the professional use of Spring Framework in practice, such as documenting REST services, data serialization, transactions in Spring, JWT authorization, WebFlux hands-on, testing, deploying to Docker, and much more.
  • duration 40 hours
  • Language English
  • format Online
duration
40 hours
location
Online
Language
English
Code
JVA-075
price
€ 850 *

Available sessions

To be determined



Training for 7-8 or more people?
Customize trainings for your specific needs

Description

Welcome to "Spring Advanced", a comprehensive course designed for experienced developers aiming to master the Spring Framework's advanced features. This course covers essential topics for building robust, scalable, and secure applications using Spring. Through a blend of presentations, examples, and hands-on exercises, you will gain deep insights and practical experience in advanced Spring development.

 

This course covers the following key topics:

Spring Data REST and API Documentation: Advanced REST operations, HATEOAS, and documenting APIs with Swagger.

Transactions and Security: Handling complex transactions and implementing secure REST services using JWT and OAuth2.

Reactive Programming with WebFlux: Building and testing reactive applications with WebFlux and integrating with reactive data sources.

 

Key Learning Objectives

Master Advanced REST Operations:

  • Implement conditional operations, handle REST events, and document APIs effectively.

Manage Complex Transactions:

  • Understand transaction isolation levels, propagation, and distributed transactions.

Secure REST Services:

  • Use JWT for authorization, define role-based access, and build secure OAuth2 servers.

Develop Reactive Applications:

  • Build, test, and benchmark reactive applications using Spring WebFlux and reactive data repositories.

 

Enroll in "Spring Advanced" to deepen your expertise in Spring Framework and become proficient in handling complex, real-world applications. This course offers a thorough understanding of advanced Spring features, ensuring you are well-equipped to develop, secure, and deploy robust Spring applications in a professional environment.

After completing the course, a certificate is issued on the Luxoft Training form

Objectives

To introduce participants to advanced Spring Framework topics, plus give examples of usage.


Target Audience

Java Developers & Architects

Prerequisites

Good knowledge of Java, knowledge of Spring


Roadmap

1. Spring Data REST advanced (5h)

1) Spring REST (3h)

- Introduction. Spring REST overview (1h)

- Conditional operations with headers (ETag, If-Match, If-None-Match, If-modified-since) (0.5h)

- REST events (0.5h)

- REST maturity model (0.5h)

- Spring HATEOAS (0.5h)

2) API RestTemplate and WebClient for implementing REST services (1h)

3) Documenting REST service with Swagger and SpringFox (1h)

Homework: ~2h

2. Object mapping and validation (5h)

- Limiting data passed to the client: @JsonIgnore, nullifying fields, DTO (0.1h)

- Projections and excerpts with Spring Data REST (0.1h)

- Using MapStruct for automatic mapping to DTO (1h)

- Custom serializers and deserializers (1h)

- Validation of model with javax.validation annotations, custom annotations (1h)

Homework: ~2 h

3. Transactions (6h)

- @Transactional annotation (0.5h)

- Transaction isolation levels (1h)

- Transaction propagation (1h)

- Exception handling in transactions (0.5h)

- The problem of calling a transaction from the same bin (0.5h)

- Optimistic locking (o.5h)

- Connecting several DBs to the project (0.5h)

- Distributed transactions and SAGA patterns (0.5h)

4. Security for REST services / JWT authorization and roles management (6h)

- Approaches to security handling in Spring (1h)

- Building UAA server with OAuth2 (1h)

- JWT tokens (2h)

- Using Spring Security to define role-based access, demonstrating examples (2h)

Homework: ~2h

5. Reactive Spring with WebFlux (8h)

- Reactive approach overview (0.5h)

- Reactive flows specification in Java 9 (0.5h)

- Class Mono and Flux (0.5h)

- Reactive operators (2h)

- R2DBC drivers (0.5h)

- Reactive Spring Data (0.5h)

- Building REST API with WebFlux (0.5h)

- WebClient for reactive data retrieval (1h)

- RSocket protocol (1h)

- Reactive interaction with RabbitMQ (0.5h)

- Reactive patterns and benchmarks (0.5h)

Homework: ~2h

6. Testing Spring services (mock objects, TestContext framework) (4h)

- Unit testing with Mockito (0.5h)

- Integration testing (1h)

- Spring testing annotations (0.5h)

- TestContext framework (0.5h)

- Server-Side REST Tests (0.5h)

- REST services testing in IntelliJ IDEA (0.5h)

- Testing WebFlux (0.5h)

Homework: ~2h

7. Spring Schedulers (0.5h)

- @Scheduled annotation

- fixedRate, fixedDelay, initialDelay

- using CRON expressions

Homework: ~30min

8. Spring caching (2h)

- 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

Homework: ~1h

9. Spring Boot Actuator (1h)

- Actuator endpoints

- Metrics in Spring Boot

- Monitoring and management over HTTP

- Spring Boot Admin management tool

10. Deploying Spring application (1.5h)

- Deploying into Docker (0.5h)

- Deploying Spring application with nginx as a front server (incl. load balancing) (0.5h)

- HTTP caching with NGINX (0.5h)

- Deploying Spring application with nginx - containerized setup with docker-compose (0.5h)

Homework: ~30 min

Total: theory 40h, practice (homework) 12h


Vladimir Sonkin
  • Trainer

Vladimir Sonkin

Java and Web Technologies Expert


Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us