Spring Advanced

How to use Spring REST, HATEOAS and CORS, documenting REST services, serializing and limiting the data passed to the client and more.
Code: JVA-075
Duration: 40 hours

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.

Roadmap

Spring Data REST advanced
  • 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

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


Trainer in Online
Catalin Tudose Java and Web Technologies Expert
Catalin is an experienced and dedicated software engineer with expertise in a variety of areas such as requirements analysis, project management (Waterfall and Agile), people management, Java technologies, database design, software architecture and software technologies for Enterprise Applications. Between 2003 and 2015 he has held several roles in telecommunications and financial projects, from Java senior developer to Java technical team lead and architect.

In addition to his role as a software engineer, Catalin has also been involved in developing and facilitating trainings on programming and databases for companies and universities. He has delivered courses on subjects such as Java, Web technologies, analysis of algorithms, SQL and database design.

Since 2012, he has conducted more than 4000 hours of courses in the Luxoft Training Center. He is the author or a coauthor of the following courses:


Catalin was also the lead facilitator for the Corporate Junior Program (CJP) which took part in Luxoft Poland (Krakow and Wroclaw). This program has prepared about 50 new Java developers to join delivery projects inside the company.

Together with Luxoft, he initiated and introduced the “Advanced Java Programming” course for the students pursuing their master’s degree at the Faculty of Automation and Computer Science in Bucharest.

He is an Agile Certified Scrum Master with a deep understanding of project management techniques and plenty of experience in managing software development projects.
Schedule in Online Prices
Course is scheduled in: Online
8.11.2021 - 18.11.2021
Time: 10:00-14:00
Timezone: UTC +2
City: Online
Duration: 36 hours
Language: English
Trainer
Catalin Tudose
Java and Web Technologies Expert
-10% €590
€531
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
8.11.2021 - 18.11.2021
Time: 10:00-14:00
Timezone: UTC +2
City: Online
Duration: 36 hours
Language: English
Trainer
Catalin Tudose
Java and Web Technologies Expert
-10% €590
€531
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
Online €650
Bucharest €650
Krakow €650
Wroclaw €650

Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. Price does not include VAT.

Sign up

Choose dates
First Name*
Last Name*
Company
Email*
Phone
Your Comment
Still have questions?
Connect with us
Thank you.
Your request has been received.
Thank you!
The form has been submitted successfully.