Course 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.
Upcoming start dates
Who should attend?
Prerequisites
Good knowledge of Java, knowledge of Spring
Training content
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
Certification / Credits
Objectives
To introduce participants to advanced Spring Framework topics, plus give examples of usage.
Quick stats about Luxoft Training Center?
More than 200 training courses
Conducted over 1,500 training sessions
Customized training solutions for business
Contact this provider
Luxoft Training Center
Luxoft Training Center — an essential part of the global technology leader, Luxoft, a DXC Technology Company. We play a pivotal role in propelling B2B businesses forward by delivering customized training solutions. Emphasizing the significance of learning and employee development,...