Kod: JVA-075
Czas trwania: 40 godzin
Czas trwania: 40 godzin
Opis szkolenia
Nasze szkolenie koncentruje się na praktycznych tematach Spring Framework, takich jak korzystanie ze Spring REST, HATEOAS i CORS, dokumentowanie usług REST, serializowanie i ograniczanie danych przekazywanych do klienta i nie tylko.Omówimy również wykorzystanie adnotacji @Transactional, optmistic transactions, autoryzację JWT, serwer autoryzacji OAuth2, praktyczne wykorzystanie programowania reaktywnego z WebFlux, a także testowanie usług Spring, Scheduler & Actuator oraz wdrażanie do Dockera.
Plan szkolenia
Spring Data REST zaawansowany poziom- Operacje warunkowe z nagłówkami (ETag, If-Match, If-None-Match, If-Modified-Since)
- REST events
- REST maturity model
- Spring HATEOAS
- API RestTemplate i WebClient do implementacji usług REST
- Dokumentowanie usługi REST za pomocą Swagger i SpringFox
Mapowanie obiektów i walidacja
- Ograniczanie danych przekazywanych do klienta: @JsonIgnore, pola nullifying, DTO
- Projekcje i fragmenty z Spring Data REST
- Używanie MapStruct do automatycznego mapowania do DTO
- Niestandardowe serializatory i deserializatory
- Walidacja modelu z adnotacjami javax.validation, adnotacjami niestandardowymi
Transakcje
- @ Adnotacja transakcyjna
- Propagacja transakcji
- Poziomy izolacji
- Obsługa wyjątków w transakcjach
Bezpieczeństwo usług REST / autoryzacja JWT i zarządzanie rolami
- Podejścia do obsługi bezpieczeństwa w Spring
- Budowa serwera UAA z OAuth2
- Tokeny JWT
- Używanie Spring Security do definiowania dostępu opartego na rolach
Reactive Spring z WebFlux
- Omówienie podejścia reaktywnego
- Klasa Mono i Flux
- Operatorzy reaktywni
- Sterowniki R2DBC
- Reactive Spring Data
- Budowanie REST API z WebFlux
- WebClient do reaktywnego pobierania danych
- Protokół RSocket
- Reaktywna interakcja z RabbitMQ
- Reaktywne wzorce i wzorce
Testowanie usług Spring (makiety obiektów, framework TestContext)
- Testowanie jednostkowe za pomocą Mockito
- Testy integracyjne
- Adnotacje dotyczące testów Spring
- Framework TestContext
- Testy REST po stronie serwera
- Testowanie usług REST w IntelliJ IDEA
- Testowanie WebFlux
Harmonogramy Spring
- @ Zaplanowana adnotacja
- fixedRate, fixedDelay, initialDelay
- używając wyrażeń CRON
Spring caching
- Korzystanie z buforowania
- @Cacheable
- @CacheEvict, @CachePut
- @CacheConfig
- Warunkowe buforowanie
- Buforowanie oparte na języku Java
- Spring caching oparty na EhCache
- Konfiguracja EhCache
Spring Boot Actuator
- Actuator endpoints
- Metryki w Spring Boot
- Monitorowanie i zarządzanie przez HTTP
- Narzędzie do zarządzania Spring Boot Admin
Wdrażanie aplikacji Spring
- Wdrażanie w Docker
- Wdrażanie aplikacji Spring z nginx jako serwerem frontowym (w tym load balancing)
- Wdrażanie aplikacji Spring za pomocą nginx - konfiguracja kontenerowa za pomocą docker-compose
Cele
- Przedstawienie zaawansowanych tematów dotyczących Spring Framework i pokazanie przykładów ich wykorzystania
Grupa docelowa
- Programiści Java
- Architekci oprogramowania
Wymagania
- Dobra znajomość języka Java, znajomość Springa