Menu Zamknij

Kurs Spring Aplikacje Webowe

Cena szkolenia

Cena szkolenia wynosi 120 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Szkolenie przygotowuje do pracy na stanowisku Java Developer lub podobnym. Po zakończeniu szkolenia uczestnik kursu będzie w stanie tworzyć oraz rozwijać aplikacje webowe, aplikacje RESTful web services oraz aplikacje w architekturze mikroserwisowej. Aplikacje wykorzystają framework Spring Boot oraz jego pochodne, które zagwarantują sprawną komunikację bazodanową, mechanizmy bezpieczeństwa w oparciu o szyfrowanie JWT oraz wykorzystanie aspektów programowania asynchronicznego. Aplikacje zostaną skonteneryzowane za pomocą narzędzia Docker i umieszczone w chmurze z wykorzystaniem Kubernetes oraz platform AWS oraz Google Cloud. Podczas szkolenia uczestnik kursu pozna dodatkowo wiele innych narzędzi wspomagających pracę z opisanymi wyżej technologiami. Uczestnik kursu wykorzysta języki i technologie w najnowszych wersjach. Kurs cały czas rozwijany jest pod kątem najbardziej aktualnych rozwiązań wymaganych w branży IT.

W ramach szkolenia uczestnik kursu rozwiąże ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują go do rozmowy kwalifikacyjnej. Wiedza uczestnika kursu będzie systematycznie sprawdzana w trakcie próbnych rozmów kwalifikacyjnych, które odbywają się w języku polskim lub angielskim.

Po zakończeniu szkolenia uczestnik kursu będzie posiadał kilka dużych projektów, które potwierdzą jego praktyczne umiejętności posługiwania się narzędziami i językami programowania, które pojawiły się w kursie. Każdy kolejny etap projektu będzie indywidualnie sprawdzony i oceniony przez mentora. Zagwarantuje to zgodność projektów z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również wymusi systematyczną pracę nad projektami. Dodatkowo uczestnik kursu otrzyma zadania rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Szkolenie zawsze odbywać się będzie w formie spotkań indywidualnych, dzięki czemu tempo kursu zostanie dopasowane do konkretnych potrzeb uczestnika kursu.

Potrzebne aplikacje i narzędzia

Komputer / laptop z dowolnym systemem operacyjnym i zainstalowanym zestawem narzędzi do budowania aplikacji pojawiających się w trakcie szkolenia. Potrzebne oprogramowanie
zostanie szczegółowo opisane oraz zainstalowane na pierwszym darmowym spotkaniu testowym lub w momencie, kiedy nastąpi konieczność jego wykorzystania w trakcie szkolenia.

Aplikacje potrzebne do nawiązania połączenia: Team Viewer oraz Skype. Na życzenie uczestnika kursu będzie możliwość używania innej aplikacji zdalnego pulpitu lub komunikatora głosowego. Na pierwszym darmowym spotkaniu testowym oceniona zostanie jakość połączenia. Na tej podstawie przeprowadzona będzie konfiguracja, która pozwoli zapewnić najlepszą jakość dźwięku oraz obrazu podczas szkoleń.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób, które ukończyły kurs Java / Kotlin lub posiadają wiedzę z całego zakresu tego kursu.

Istnieje możliwość rozpoczęcia szkolenia od wybranego punktu w planie szkolenia. Kurs poprzedzony jest wtedy szczegółową rozmową kwalifikacyjną w języku polskim lub angielskim. Na podstawie rozmowy zostanie oceniony poziom uczestnika kursu z zakresu materiału przed
wybranym punktem w planie szkolenia.

Plan szkolenia

  • Omówienie architektury frameworka Spring
  • Przegląd wersji Spring oraz wprowadzanych w nich zmian
  • Omówienie zasady działania kontenera Spring
  • Omówienie zasady działania kontekstu aplikacji Spring
  • Wzorzec projektowy Dependency Injection (DI)
  • Wzorzec projektowy Inversion of Control (IoC)
  • Cykl życia komponentu Spring
  • Konfiguracja pierwszej aplikacji Spring
  • Przegląd adnotacji frameworka Spring
  • Automatyczne wiązanie komponentów
  • Wiązanie komponentów za pomocą konfiguracja Java
  • Wiązanie komponentów za pomocą plików XML
  • Import oraz łączenie konfiguracji
  • Rozwiązanie problemu niejednoznaczności podczas wstrzykiwania komponentów
  • Zasięg komponentów
  • Różne sposoby wstrzykiwania wartości w czasie wykonywania
  • Programowanie aspektowe z wykorzystaniem frameworka Spring
  •  Praktyczne przykłady wykorzystania programowania aspektowego.
  • Zagadnienia uzupełniające
  • Omówienie architektury frameworka Spring Web MVC
  • Omówienie roli klasy DispatcherServlet
  • Analiza adnotacji frameworka Spring Web MVC
  • Omówienie roli kontenera aplikacji webowych
  • Konfiguracja i uruchomienie kontenera aplikacji webowych
  • Konfiguracja i uruchomienie pierwszej aplikacji webowej
  • Zagadnienia uzupełniające
  • Omówienie architektury frameworka Spring Boot
  • Moduły Spring Boot Starters
  • Pluginy wspomagające pracę z aplikacjami Spring Boot
  • Praca z narzędziem Spring Initializr
  • Spring Boot CLI
  • Sposoby autokonfiguracji aplikacji Spring Boot
  • Konfiguracja aplikacji Spring Boot z poziomu plików konfiguracyjnych properties, YAML oraz wiersza poleceń
  • Konfiguracja aplikacji Spring Boot z wykorzystaniem adnotacji i klas Java
  • Monitorowanie stanu aplikacji za pomocą Spring Boot Actuator
  • Narzędzia modułu DevTools
  • Profile aplikacji
  • Przegląd wbudowanych serwerów aplikacji Spring Boot
  • Zagadnienia uzupełniające
  • Konfiguracja aplikacji Spring Boot do pracy z frameworkiem Spring Web MVC
  • Implementacja kontrolerów
  • Zarządzanie parametrami zapytania oraz parametrami ścieżki
  • Filtrowanie danych z wykorzystaniem parametrów
  • Zarządzanie widokami
  • Omówienie architektury biblioteki Bootstrap
  • Praca z modułami webjars
  • Przegląd komponentów Bootstrap
  • Omówienie architektury biblioteki Thymeleaf
  • Sposoby osadzania danych w widoku za pomocą biblioteki Thymeleaf
  • Analiza komponentów biblioteki Thymeleaf
  • Omówienie zasady działania formularzy
  • Implementacja i zarządzanie polami formularza
  • Zarządzanie zasobami statycznymi
  • Implementacja mechanizmu multipart do przesyłania plików
  • Walidacja danych w formularzu – Hibernate Validator
  • Walidacja danych w formularzu – Spring Validator
  • Nawigacja pomiędzy widokami
  • Przechwytywanie i obsługa wyjątków
  • Implementacja strony informującej o błędach
  • Internacjonalizacja
  • Szyfrowanie przesyłanych danych
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji bazodanowej
  • Omówienie architektury wielowarstwowej oraz architektury DDD
  • Omówienie architektury frameworka Spring Data i Spring Data JPA
  • Konfiguracja aplikacji Spring Boot do pracy ze Spring Data JPA
  • Implementacja warstwy mapującej tabele bazy danych
  • Zarządzanie danymi w bazie danych z wykorzystaniem biblioteki Liquibase
  • Przegląd interfejsów Spring Data JPA dla warstwy repozytoryjnej
  • Implementacja zapytań z wykorzystaniem mechanizmu query methods
  • Przekazywanie parametrów w mechanizmie query method
  • Sortowanie wyników zapytań – klasa Sort
  • Implementacja zapytań modyfikujących oraz usuwających
  • Projekcje
  • Wykorzystanie procedur składowanych
  • Implementacja mechanizmu Query By Example
  • Zarządzanie transakcyjnością
  • Implementacja warstwy serwisowej
  • Wykorzystanie warstwy bazodanowej w aplikacji webowej
  • Zagadnienia uzupełniające
  • Omówienie formatu JSON
  • Omówienie standardu REST
  • Serializacja i deserializacja JSON
  • Omówienie architektury aplikacji RESTful Web Services
  • Omówienie klas i adnotacji Spring Boot wykorzystywanych w RESTful Web Services
  • Implementacja serwisu REST
  • Przygotowanie warstwy zarządzania danymi
  • Różne sposoby implementacji REST kontrolerów
  • Zarządzanie parametrami żądania 
  • Zarządzanie nagłówkami
  • Zarządzanie cookies
  • Różne sposoby walidowania danych
  • Analiza kodów odpowiedzi HTTP
  • Przygotowanie prawidłowego formatu zwracanych danych
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Omówienie zasady działania klasy RestTemplate
  • Implementacja aplikacji klienta REST
  • Przesyłanie plików w aplikacjach RESTful Web Services
  • Przechwytywanie i obsługa wyjątków
  • Generowanie dokumentacji REST API za pomocą Swagger
  • Zagadnienia uzupełniające
  • Konfiguracja komunikacji bazodanowej na potrzeby testów
  • Zastosowanie frameworków JUnit oraz Mockito w testach aplikacji webowych
  • Przygotowanie testowej warstwy repozytoryjnej
  • Testy jednostkowe warstwy repozytoryjnej
  • Testy jednostkowe warstwy kontrolerów
  • Testy integracyjne aplikacji webowej
  • Zagadnienia uzupełniające
  • Omówienie architektury frameworka Spring Security
  • Testowanie podstawowych możliwości zabezpieczających frameworka Spring Security
  • Przechowywanie użytkowników w pamięci aplikacji
  • Implementacja mechanizmu rejestracji użytkowników zapisanych 
  • w bazie danych
  • Różne sposoby szyfrowania haseł z wykorzystaniem Spring Security
  • Implementacja formularza logowania
  • Implementacja obsługi błędów mechanizmu Spring Security
  • Dostosowanie konfiguracji Spring Security do potrzeb implementowanej aplikacji
  • Implementacja mechanizmu aktywacji nowych użytkowników 
  • z wykorzystaniem adresu e-mail
  • Implementacja mechanizmu przypominania hasła użytkownika 
  • z wykorzystaniem adresu e-mail
  • Implementacja mechanizmu wylogowania
  • Nadawanie uprawnień użytkownikom aplikacji
  • Dostosowanie aplikacji do pracy z użytkownikami o różnych uprawnieniach
  • Mechanizmy biblioteki Thymeleaf współpracujące ze Spring Security
  • Bezpieczeństwo aplikacji RESTful Web Services
  • Autentykacja oraz autoryzacja
  • Omówienie standardu JWT
  • JWT Debugger
  • Zarządzanie danymi przesyłanymi w tokenie JWT
  • Omówienie zasady działania i przygotowanie access token.
  • Omówienie zasady działania i przygotowanie refresh token.
  • Omówienie zasady działania filtrów Spring Boot
  • Dobre praktyki szyfrowania danych w tokenach JWT
  • Implementacja mechanizmu security w aplikacji RESTful Web Services z wykorzystaniem standardu JWT
  • Zagadnienia uzupełniające
  • Omówienie zasady działania aplikacji asynchronicznych
  • Prezentacja założeń aplikacji reaktywnych
  • Biblioteka Spring Reactor oraz framework Spring WebFlux
  • Konfiguracja aplikacji Spring Boot do pracy z mechanizmami reaktywnymi
  • Analiza działania i sposoby tworzenia instancji typów reaktywnych Mono oraz Flux
  • Strumienie reaktywne
  • Implementacja i zarządzanie wątkami z wykorzystaniem schedulers
  • Przegląd metod zarządzających typami oraz strumieniami reaktywnymi
  • Przegląd metod realizujących mechanizm backpressure
  • Przegląd metod realizujących przechwytywanie i obsługę błędów 
  • Testowanie mechanizmów reaktywności
  • Przygotowanie warstwy bazodanowej dla aplikacji reaktywnych 
  • na przykładzie bazy danych MongoDB
  • Implementacja reaktywnej aplikacji RESTful Web Services
  • Routing prosty oraz zagnieżdżony w aplikacjach reaktywnych
  • Implementacja reaktywnej warstwy bezpieczeństwa aplikacji z wykorzystaniem Spring Security
  • Testowanie reaktywnego REST API z wykorzystaniem zewnętrznych klientów REST
  • Testy jednostkowe warstwy serwisowej i kontrolerów reaktywnej aplikacji RESTful Web Services
  • Implementacja aplikacji reaktywnego klienta
  • Przechwytywanie i obsługa błędów reaktywnej aplikacji webowej
  • Dostosowanie aplikacji niereaktywnych do pracy z mechanizmami reaktywności
  • Zagadnienia uzupełniające
  • Wprowadzenie do architektury Apache Kafka
  • Omówienie struktury danych gromadzonych w Kafka
  • Prezentacja zasady działania broker-ów
  • Analiza sposobu przesyłania danych z wykorzystaniem producentów i konsumentów
  • Omówienie zasady działania i przeznaczenia Zookeeper
  • Zaawansowana konfiguracja systemu zarządzania wiadomościami Kafka
  • Prezentacja instrukcji dostępnych w Kafka CLI
  • Implementacja różnych konfiguracji systemu zarządzania wiadomościami w aplikacji Java
  • Analiza zastosowania biblioteki Kafka Streams
  • Architektura i struktura biblioteki Kafka Streams
  • Konfiguracja aplikacji Java do pracy z Kafka Streams
  • Implementacja mechanizmów Kafka Streams w aplikacji Java
  • Prezentacja biblioteki Kafka Connect
  • Przegląd dostępnych sources oraz sinks
  • Konfiguracja aplikacji Java do pracy z Kafka Connect
  • Implementacja mechanizmów Kafka Connect w aplikacji Java
  • Konfiguracja aplikacji webowej Spring Boot do pracy z Kafka
  • Implementacja mechanizmów Kafka w aplikacji webowej Spring Boot
  • Implementacja aplikacji webowej Spring Boot wykorzystującej reaktywny API Reactor Kafka
  • Omówienie architektury platformy RabbitMQ
  • Analiza sposobu przesyłania danych z wykorzystaniem producentów i konsumentów
  • Omówienie przeznaczenia i rodzajów RabbitMQ Exchange
  • Przechwytywanie i zarządzanie błędami w systemie zarządzania wiadomościami
  • Pluginy RabbitMQ
  • Zaawansowana konfiguracja systemu zarządzania wiadomościami RabbitMQ
  • Implementowanie struktury systemu zarządzania wiadomościami RabbitMQ z poziomu aplikacji Spring Boot
  • Porównanie narzędzi Kafka oraz RabbitMQ
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji mikroserwisowych
  • Omówienie modułów frameworka Spring Cloud
  • Konfigurowanie aplikacji Spring Cloud
  • Implementacja serwera Spring Cloud Config
  • Implementacja klienta Spring Cloud Config
  • Przechowywanie i zarządzanie danymi konfiguracyjnymi w zdalnym repozytorium
  • Wykorzystanie profili aplikacji w zarządzaniu danymi konfiguracyjnymi
  • Omówienie architektury projektu Spring Cloud Netflix
  • Prezentacja komponentów platformy Netflix OSS
  • Implementacja serwera Eureka
  • Implementacja i rejestracja klienta w serwerze Eureka
  • Przygotowanie warstwy bazodanowej do pracy z mikroserwisami przy użyciu frameworka Spring Data JPA
  • Implementacja standardu REST do komunikacji pomiędzy klientami Eureka z wykorzystaniem klasy RestTemplate
  • Konfiguracja mechanizmu Load Balancing
  • Implementacja standardu REST do komunikacji pomiędzy klientami Eureka z wykorzystaniem Spring Cloud Netflix FeignClient
  • Skalowanie aplikacji w architekturze mikroserwisowej
  • Zastosowanie mechanizmów programowania reaktywnego do komunikacji pomiędzy klientami Eureka
  • Konfiguracja mechanizmu API Gateway za pomocą Netflix Zuul Proxy
  • Konfiguracja i zarządzanie filtrami Zuul
  • Konfiguracja mechanizmu API Gateway za pomocą Spring Cloud Gateway
  • Implementacja reaktywnych systemów zarządzania wiadomościami w oparciu o narzędzie Kafka oraz RabbitMQ
  • Omówienie zasady działania mechanizmów obsługujących błędy
  • Analiza wzorca circuit breaker
  • Implementacja wzorca circuit breaker z wykorzystaniem biblioteki Hystrix
  • Konfiguracja ustawień Hystrix za pomocą atrybutów adnotacji 
  • Mechanizm Hystrix Metrics Stream we współpracy ze Spring Actuator
  • Monitorowanie stanu aplikacji za pomocą Hystrix Dashboard
  • Monitorowanie stanu aplikacji za pomocą Turbine
  • Wykorzystanie narzędzi monitorowania i logowania aplikacji mikroserwisowych – Spring Cloud Sleuth oraz Zipkin
  • Implementacja oraz konfiguracja Spring Cloud Bus
  • Bezpeczeństwo aplikacji mikroserwisowych – implementacja Spring Security z wykorzystaniem standardu JWT
  • Wykorzystanie biblioteki Resilence4j w aplikacjach mikroserwisowych
  • Przygotowanie aplikacji mikroserwisowej do pracy z frameworkiem Webflux
  • Reaktywna komunikacja pomiędzy mikroserwisami z wykorzystaniem narzędzia WebClient
  • Monitorowanie stanu aplikacji z wykorzystaniem narzędzia Prometheus
  • Zagadnienia uzupełniające
  • Omówienie architektury platformy Docker
  • Instalacja platformy Docker
  • Przegląd poleceń platformy Docker
  • Tworzenie i zarządzanie obrazami platformy Docker
  • Tworzenie i zarządzanie kontenerami platformy Docker
  • Tworzenie i zarządzanie volumes platformy Docker
  • Tworzenie i zarządzanie networks platformy Docker
  • Przegląd instrukcji Docker CLI
  • Instalacja i uruchamianie przykładowych narzędzi z wykorzystaniem platformy Docker
  • Omówienie struktury pliku konfiguracyjnego Dockerfile
  • Konteneryzacja aplikacji webowej Spring Boot
  • Omówienie zasady działania narzędzia Docker Compose
  • Instalacja narzędzia Docker Compose
  • Struktura pliku konfiguracyjnego narzędzia Docker Compose
  • Przygotowanie kontenera bazy danych 
  • Konteneryzacja aplikacji webowych Spring Boot z wykorzystaniem narzędzia Docker Compose
  • Konteneryzacja aplikacji webowych Spring Boot w oparciu o zewnętrzne pluginy
  • Konteneryzacja aplikacji RESTful Web Services
  • Konteneryzacja aplikacji reaktywnych Webflux
  • Konteneryzacja aplikacj webowych fullstack z wykorzystaniem Spring Boot i frameworków Angular oraz React
  • Konteneryzacja aplikacji w architekturze mikroserwisowej
  • Zagadnienia uzupełniające
  • Omówienie architektury Kubernetes
  • Przegląd rozwiązań chmurowych pod kątem stosowania Kubernetes na przykładzie platform Google Cloud oraz AWS
  • Przygotowanie platofrmy Google Cloud do pracy z Kubernetes
  • Przygotowanie platformy AWS do pracy z Kubernetes
  • Tworzenie i zarządzanie klastrem Kubernetes
  • Przygotowanie aplikacji webowej do osadzenia w klastrze Kubernetes
  • Osadzanie aplikacji webowej w klastrze Kubernetes
  • Analiza możliwości Kubernetes pod kątem mechanizmów Load Balancing oraz Auto Scaling
  • Analiza plików konfiguracyjnych YAML wykorzystywanych w pracy z Kubernetes
  • Omówienie sposobów generowania plików konfiguracyjnych YAML
  • Konfiguracja narzędzi do pracy z klastrem Kubernetes z poziomu maszyny lokalnej
  • Zarządzanie różnymi wersjami aplikacji osadzanej w klastrze Kubernetes
  • Konwersja konfiguracji Docker Compose do konfiguracji klastra Kubernetes
  • Zastosowanie mechanizmów Kubernetes do zarządzania bazą danych w klastrze
  • Centralizowanie konfiguracji z wykorzystaniem mechanizmu Config Map
  • Przechowywanie wrażliwych danych z wykorzystaniem mechanizmu Secret Generic
  • Przygotowanie aplikacji w architekturze mikroserwisowej do osadzenia w klastrze Kubernetes
  • Osadzenie aplikacji w architekturze mikroserwisowej w klastrze Kubernetes
  • Konfiguracja mechanizmu Ingress
  • Wykorzystanie projektu Spring Boot Kubernetes do zarządzania aplikacją w architekturze mikroserwisowej w pracy z Kubernetes
  • Logowanie błędów i zdarzeń w aplikacjach osadzonych w klastrze Kubernetes
  • Konfiguracja narzędzia Istio
  • Konfiguracja narzędzia Helm
  • Zagadnienia uzupełniające
  • Omówienie architektury Amazon Web Services
  • Konfiguracja konta AWS
  • Konfiguracja i uruchomienie serwisu Amazon EC2
  • Konteneryzacja aplikacji webowej
  • Umieszczenie aplikacji webowej w bibliotece kontenerów Docker Hub
  • Instalacja platformy Docker w serwisie Amazon EC2
  • Instalacja JDK w serwisie Amazon EC2
  • Uruchomienie kontenera Docker aplikacji webowej w serwisie Amazon EC2
  • Konfiguracja i uruchomienie serwisu Amazon ECS
  • Uruchomienie kontenera Docker aplikacji webowej w serwisie Amazon ECS
  • Konfiguracja i uruchomienie serwisu Amazon Elastic Beanstalk
  • Uruchomienie aplikacji webowej Spring Boot w serwisie Amazon Elastic Beanstalk
  • Uruchomienie kontenera Docker aplikacji webowej w serwisie Amazon Elastic Beanstalk
  • Konfiguracja połączenia aplikacji webowych uruchamianych w Amazon Web Services do pracy ze zdalną bazą danych
  • Konfiguracja połączenia kontenera Docker aplikacji webowej uruchamianej w Amazon Web Services do pracy z kontenerem bazy danych
  • Umieszczanie w chmurze aplikacji w architekturze
    mikroserwisowej z wykorzystaniem narzędzia Docker oraz Amazon Web Services
  • Zagadnienia uzupełniające
  • Interceptors
  • Przygotowanie aplikacji Spring Boot do pracy z GraphQL
  • Zarządzanie mechanizmem multipart w aplikacjach WebFlux
  • Zastosowanie języka Kotlin w aplikacjach Spring Boot
  • Wysyłanie wiadomości e-mail
  • Generowanie plików PDF
  • Adnotacja @Async
  • Zarządzanie zdarzeniami w sposób synchroniczny oraz asynchroniczny
  • Framework Axon
  • Mechanizm cache z wykorzystaniem biblioteki Redis

Materiały video

Wstecz 1 z 2 Dalej
Wstecz 1 z 2 Dalej

Newsletter

Scroll Up