Spring Boot - budowanie aplikacji REST

Najbliższe terminy tego szkolenia
Skuteczność
Program szkolenia
- Przygotowanie Środowiska (dzień 1)
- Instalacja środowiska deweloperskiego (IDE) - IntelliJ Ultimate (wersja trial)
- Instalacja Javy
- Obsługa interfejsu IntelliJ
- Hello World - uruchomienie programu w Javie
- Tworzenie Projektu (dzień 1)
- Wygenerowanie Projektu
- Import do IntelliJ
- Uruchomienie pierwszego projektu w Springu
- Omówienie struktury plików
- Omówienie narzędzia do budowania - Maven
- Dodawanie zależności do projektu
- Architektura Springa (dzień 1)
- Elementy Architektury Springa
- Beany
- Wstrzykiwanie zależności (Dependency Injection)
- Adnotacje - Component, Service, Controller, Repository
- Skanowanie Komponentów
- Aspect Oriented Programming
- Spring a Spring Boot
- Spring Boot Starters
- Konfiguracja
- Profile
- Spring Expression Language
- Architektura Aplikacji (dzień 1)
- 3 warstwowy podział
- Warstwa Modelu
- Warstwa Serwisów
- Warstwa Kontrolerów
- REST API (dzień 2)
- Podstawowe zasady API w stylu REST
- Dodanie zależności
- @RestController
- @RequestMapping
- Obsługa żądań GET, POST, PUT, DELETE
- Obsługa formularzy
- Przesyłanie plików
- Walidacja requestów
- Kody odpowiedzi HTTP
- Obsługa błędów
- Obsługa wyjątków
- Komunikacja z bazą danych - Wprowadzenie do JPA i Hibernate (dzień 2)
- Dodanie zależności
- Wystartowanie i połączenie z bazą danych
- Omówienie najważniejszych konceptów (ORM, Hibernate, JPA)
- Mapowanie Encji
- EntityManager
- Cykl życia encji
- Zapytania SELECT, UPDATE, DELETE z użyciem języka HQL
- Natywne zapytania do bazy danych
- Criteria API
- Relacje w Hibernate (dzień 3)
- Relacje One-To-One,
- Relacje One-To-Many,
- Relacje Many-to-Many
- Lazy vs Eager
- Kaskadowość operacji
- EntityGraph
- Fetch Join
- Pułapki i najlepsze praktyki
- Spring Data JPA (dzień 3)
- Omówienie projektu
- Koncept Repository
- Definiowanie własnych repozytoriów
- Wbudowane zapytania
- Definiowanie własnych zapytań
- Definicja zapytań z użyciem Spring Data JPA
- Transakcje (dzień 4)
- Najważniejsze koncepty
- Rodzaje Transakcji
- Wycofywanie - Rollback
- Transakcje a Współbieżność
- Kiedy stosować, a kiedy nie?
- Komunikacja HTTP (dzień 4)
- Wprowadzenie RestTemplate
- Konfiguracja RestTemplate
- Separacja implementacji od interfejsu
- Testowanie Springa (dzień 5)
- Architektura Testów
- Dodanie zależności
- Wprowadzenie do frameworka JUnit 5
- Przydatne biblioteki - Assert4j, Hamcrest Matchers
- Podstawowe testy JUnit
- Testowanie pełnej aplikacji z @SpringBootTest
- Testowanie warstwy bazodanowej z @DataJpaTest
- Testowanie warstwy HTTP z @WebMvcTest
- Mockowanie Beanów
- Testowanie warstwy serwisowej
- Security (dzień 5)
- Architektura Security
- Konfiguracja aplikacji, uprawnień i ról
- Walidowanie dostępu
- Rejestracja i logowanie użytkowników
- Podsumowanie (dzień 5)
- Co dalej? - Gdzie szukać dodatkowych informacji?
- Co dalej? - Jak dodać UI?
- Co dalej? - Najważniejsze pułapki i błędy początkujących
- Projekt końcowy (dzień 5)
Szkolenie kończy projekt realizowany przez uczestników z pomocą trenera. Będzie to aplikacja internetowa służaca do zarządzania zadaniami. Projekt ten jest podsumowaniem umiejętności nabytych podczas tego szkolenia, pozwala też zmierzyć się ze specyfiką realnego projektu.
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!Przebieg szkolenia
- Zaczynamy od przygotowania środowiska pracy. Zainstalowania potrzebnych narzędzi - Javy oraz środowiska deweloperskiego - IDE - Idea Intellij - najpopularniejszego narzędzia do pracy z kodem w Javie.
- Poznajemy fundamenty Springa. Po co powstał, jakie problemy rozwiązuje, jaka jest jego podstawowa architektura oraz jak z nim pracować. Poznasz takie pojęcia jak beany, context Springa, wstrzykiwanie zależności (Dependency Injection), zarządzanie zależnościami w projekcie. Porozmawiamy też o architekturze i rozkładzie kodu w projekcie.
- W kolejnym kroku zaczynamy budować własną aplikację w Springu. Zaczniemy pracę od zdefiniowania REST API (nauczymy się czym jest i dlaczego jest takie popularne), zdefiniujemy pierwsze endpointy i kontrolery służące do obsługi zapytań użytkowników.
- W kolejnym kroku połączymy się z bazą danych. Poznamy bibliotekę Hibernate, nauczymy się co to jest JPA, encja, cykl życia encji. W jaki sposób mapuje się tabele bazodanowe na encje JPA. Jak definiować relacje i połączenia między nimi.
- Następnie przejdziemy w bardziej zaawansowane tematy JPA i Hibernate oraz omówimy sobie pułapki i zagrożenia, na które warto zwrócić szczególną uwagę.
- Potem pokażemy w jaki sposób możemy pisać testy w Springu.
- Oraz jak zadbać o Security aplikacji.
Dla kogo?
Aby wziąć udział w szkoleniu potrzebna jest znajomość języka Java oraz korzystania z jego elementów takich jak klasy, dziedziczenie, pętle, strumienie, wyjątki, itd.
Szkolenie pozwala nabyć umiejętności potrzebne do budowania własnych aplikacji webowych w Springu - najpopularniejszym frameworku w świecie Javy.
Prowadzący szkolenie: Dariusz Mydlarz
Senior Java Engineer z ponad 10-letnim doświadczeniem w budowie aplikacji webowych, bankowych, systemów CRM, sprzedażowych i marketingowych. Specjalizuje się w Javie, Springu, Hibernate, Mikroserwisach, Wzorcach Projektowych, Współbieżności i Monitoringu. Pracował dla takich firm i klientów jak Akademia Górniczo-Hutnicza, Softnet Sp. z.o.o, PGS Software, Base CRM, SoftwareMill, NoFluffJobs czy Zendesk. Twórca Sztuki Kodu, programów online Szkoła Springa, Kurs Współbieżności i Szkoła Monitoringu. Aktywny w serwisach społecznościowych, gdzie pomaga rozwijać się innym programistom.

Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Java










Jestem programistą z ponad 15-letnim doświadczeniem. W trakcie swojej kariery kilka razy zmieniałem obszary, z którymi miałem do czynienia (poczynając od niskopoziomowego programowania w C, poprzez fullstackowe zabawy w RubyOnRails, aż do prawdziwego backendu w Javie). Odkąd pamiętam, zawsze lubiłem dzielić się wiedzą z innymi i sprawiało to satysfakcję obu stronom tego procesu. Dlatego naturalną konsekwencją było to, iż zostałem kilka lat temu profesjonalnym trenerem IT.
Prowadzenie szkoleń pozwala mi również na każdorazowe powtórzenie i ugruntowanie swojej wiedzy, co potem bardzo przydaje się w pracy projektowej. Natomiast to, co daje mi największe zadowolenie jako trenerowi, to sytuacja gdy uczeń przerośnie mistrza - wtedy wiem, że dałem z siebie wszystko, a moja praca przyniosła owoce.