Spring framework / Spring Boot
Czas trwania szkolenia:5 dni (40h)
Kod kursu:SPRING
Poziom zaawansowania:
O szkoleniu Spring framework / Spring Boot
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Programistów pragnących poznać framework Spring w stopniu umożliwiającym jego samodzielne wykorzystanie
- Programistów chcących tworzyć skalowalne i łatwe w utrzymaniu aplikacje, z wykorzystaniem najnowszej wersji Spring framework
- Programistów przygotowujących się do certyfikacji Spring, chcących powtórzyć i uporządkować posiadaną wiedzę
Wymagania
- Praktyczna umiejętność programowania w języku Java
- Elementarna wiedza z zakresu technologii wchodzących w skład Jakarta EE
- Podstawowa znajomość SQL i relacyjnych baz danych
Zalety
- Szkolenie stanowi kompleksowe wprowadzenie do Spring framewok z naciskiem na dobre praktyki związane z jego wykorzystaniem
- Szkolenie "Spring framework" prowadzone jest w formie warsztatu, w ramach którego realizowany jest jeden duży projekt
Cele szkolenia
- Wprowadzenie i gruntowne poznanie możliwości frameworku
- Zrozumienie i przyswojenie idiomów programistycznych wykorzystywanych w Spring m.in. wstrzykiwanie zależności, programowanie aspektowe
- Opanowanie Spring framework w stopniu umożliwiającym jego zastosowanie w realnym projekcie
- Poznanie najważniejszych modułów wchodzących w skład Spring framework
- Zdobycie wiedzy pozwalającej na testowanie aplikacji Spring na poziomie jednostkowym oraz integracyjnym
- Poznanie metod integracji Spring z innymi technologiami
Program
Podstawy Spring framework
- Wprowadzenie/charakterystyka frameworku
- Spring jako kontener inwersji kontroli
- Komponenty zarządzane – tworzenie, konfigurowanie, cykl życia
- Aspekty - zasada działania, zastosowanie, przykłady użycia
- Publikowanie i nasłuchiwanie zdarzeń w kontenerze
- Architektura aplikacji oraz właściwa organizacja kodu w projekcie
- Spring framework vs. Spring Boot
- Wykorzystanie dokumentacji
Warstwa utrwalania
- Konfigurowanie połączenia do bazy danych
- Transakcyjność - menadżer transakcji oraz dostępne adaptery, parametry transakcji (izolacja, propagacja, reguły wycofywania, czas ważności)
- Praktyczna integracja z JPA/Hibernate
- Warstwa utrwalania z użyciem projektu Spring Data
- Wykonywanie zapytań (DSL, adnotacje, zapytania przez przykłady i specyfikację, projekcje, asynchroniczność)
- Kontrola ładowania danych z wykorzystaniem Entity Graphs
- Spring Data i nierelacyjne bazy danych na przykładzie MongoDB
Usługi REST
- Założenia architektury REST
- Wprowadzenie do Spring MVC
- Tworzenie i konfigurowanie kontrolerów
- Obiekty transferowe oraz mapowanie modelu danych między warstwami
- Walidacja danych wejściowych z wykorzystaniem Bean Validation
- Obsługa wyjątków na poziomie kontrolerów oraz aplikacji
- Dokumentowanie API
Spring Boot
- Tworzenie i konfigurowanie projektu
- Klasy konfiguracyjne, auto konfiguracja, modyfikacja ustawień domyślnych
- Narzędzia deweloperskie
- Budowanie obrazów natywnych
Spring Security
- Wyjaśnienie podstawowych terminów m.in. uwierzytelnienie, autoryzacja dostępu, integralność danych, poufność
- Przegląd najważniejszych komponentów Spring Security oraz omówienie procesu uwierzytelniania i autoryzacji
- Konfiguracja bezpieczeństwa na poziomie warstwy webowej oraz komponentów Spring
- Nagłówki związane z bezpieczeństwem oraz CORS
- Ochrona przed Cross Site Request Forgery (CSRF)
- Bezpieczeństwo usług REST - tokeny JWT, protokół OpenID/OAuth2, integracja z Keycloak oraz innymi dostawcami
Testowanie
- Wprowadzenie do testowania jednostkowego oraz biblioteki JUnit
- Obiekty zastępcze z wykorzystaniem biblioteki Mockito
- Testy jednostkowe na poziomie repozytoriów, usług oraz kontrolerów
- Testy integracyjne
- Dobre praktyki
Integracja
- Zarządzanie zadaniami (scheduling)
- Metody asynchroniczne
- Wysyłanie/odbieranie komunikatów JMS
- Integracja z serwerem Kafka
- Wysyłanie wiadomości email
- Wykorzystanie pamięci podręcznej na przykładzie Redis oraz Hazelcast
- WebSockets, SockJS i protokół STOMP