Szkolenie z Spring Framework w praktyce

Opis

Tworzenie złożonych systemów informatycznych wymaga wielu pomocniczych narzędzie, aby tworzyć elastyczne i efektywne systemy. Spring Framework to dobrze ugruntowane narzędzie z ponad 10-letnią historią, która zawiera szereg narzędzie klasy Enterprise. W czasie szkolenia będziesz miał okazję poznać podstawowe założenia fabryki DI jak i zaawansowane zagadnienie związane z bezpieczeństwem, REST, remotingiem, messagingiem czy testowaniem. Zajęcia są bardzo intensywne i zdominowane głównie przez praktyczne ćwiczenia.

Poniższy program zawiera różnorodne tematy związane ze Spring Framework. Najczęściej to szkolenie jest realizowane w oparciu o podzbiór wybranych przez klienta tematów.

Profil uczestnika

  • Uczestnik ma za sobą minimum roczne doświadczenie realizacji systemów informatycznych w języku Java, szczególnie systemów klasy Enterprise.
  • Uczestnik zna zagadnienia projektowania i programowania obiektowego na poziomie podstawowym.

Podstawowy program

Moduł. 1
Wprowadzenie do Spring
Moduł. 2
Wprowadzenie do IoC oraz DI
Moduł. 3
Zaawansowana konfiguracja
Moduł. 4
Spring AOP
Moduł. 5
Współpraca z JDBC
Moduł. 6
Hibernate w Spring
Moduł. 7
JPA2 w Spring
Moduł. 8
Zarządzanie transakcjami
Moduł. 9
Cache
Moduł. 10
Spring Security
Moduł. 11
Walidacja z konwersją i formatowaniem
Moduł. 12
Harmonogramowanie (scheduling)
Moduł. 13
Spring Remoting, komunikaty i REST
Moduł. 14
Spring Social
Moduł. 15
Testowanie ze Springiem
Moduł. 16
Monitoring
Moduł. 17
Spring Integration
Moduł. 18
Spring Batch
Moduł. 19
NoSQL i BigData

Szczegółowy program

Moduł. 1
Wprowadzenie do Spring
  • Ewolucja Spring Framework
  • Inversion of control czy Dependency injection?
  • Ewolucja Dependency injection
  • Co oprócz Dependency injection?
  • Zestaw narzędzi dostarczanych przez Spring
  • Projekty Spring
  • Alternatywy dla Spring
Moduł. 2
Wprowadzenie do IoC oraz DI
  • Rodzaje Inversion of Control
  • Dependency Pull
  • Contextualized Dependency Lookup
  • Constructor Dependency Injection
  • Setter Dependency Injection
  • Injection a Lookup
  • Setter Injection a Constructor Injection
  • Beans oraz FactoryBeans
  • Implementacje BeanFactory
  • Application Context
  • Konfigurowanie komponentów
  • Setter Injection
  • Constructor Injection
  • Method Injection
  • Nazwy beanów
  • Sposób tworzenia beanów
  • Rozwiązywanie zależności
  • Autowiring
  • Dziedziczenie beanów
Moduł. 3
Zaawansowana konfiguracja
  • Zarządzanie cyklem życia beanów
  • Beany SpringAware
  • Własne FactoryBeans
  • Atrybuty factory-bean i factory-method
  • JavaBeans Property Editors
  • Internacjonalizacja z MessageSource
  • Application Events
  • Dostęp do zasobów
  • Konfiguracja w języku Java
  • Profile Springa
  • Abstrakcje Environment oraz PropertySource
  • Konfiguracja z użyciem adnotacji JSR-330
Moduł. 4
Spring AOP
  • Wprowadzenie do AOP
  • Koncepcje AOP
  • Statyczne AOP
  • Dynamiczne AOP
  • Które AOP wybrać?
  • AOP Alliance
  • Architektura Spring AOP
  • Klasa ProxyFactory
  • Tworzenie Advice
  • Advisors oraz Pointcuts
  • Używanie dynamicznych proxy JDK
  • Używanie proxy CGLIB
  • Wydajność proxy
  • Zaawansowana konfiguracja Pointcuts
  • Komponowanie Pointcuts
  • Introductions
  • Deklaratywne AOP
  • ProxyFactoryBean
  • Przestrzeń nazw aop
  • Adnotacje w stylu AspectJ
  • Kiedy używać deklaratywnej konfiguracji AOP
  • Integracja z AspectJ
Moduł. 5
Współpraca z JDBC
  • Wyrażenia Lambda
  • Infrastruktura JDBC
  • Klasy pomocnicze Spring dla JDBC
  • Zarządzanie połączeniami i źródłami danych
  • DataSources w klasach DAO
  • Obsługa wyjątków
  • Klasa JdbcTemplate - praktyczne użycie w różnych przypadkach
  • MappingSqlQuery
  • SqlUpdate
  • Dodawanie danych i pobieranie generowanych kluczy
  • Obsługa operacja batchowych
  • Obsługa procedur składowanych
  • Projekt Spring Data
Moduł. 6
Hibernate w Spring
  • Konfiguracja SessionFactory
  • Obsługa mapowań z użyciem adnotacji
  • Interfejs Session
  • Operacje typu CRUD z Hibernate
  • Użycie HQL
Moduł. 7
JPA2 w Spring
  • EntityManagerFactory
  • Obsługa mapowań z użyciem adnotacji
  • Operacje typu CRUD z Hibernate
  • Użycie Java Persistence Query Language
  • Zapytania natywne
  • Criteria API
  • Spring Data JPA
  • Wersjonowanie encji z Envars
Moduł. 8
Zarządzanie transakcjami
  • Warstwa abstrakcji Spring Transaction
  • Typy transakcji
  • Implementacje PlatformTransactionManager
  • Interfejs TransactionDefinition
  • Interfejs TransactionStatus
  • Deklaratywne i programistyczne transakcje
  • Adnotacje
  • Konfiguracja transakcji z użyciem XMLa
  • Dobre praktyki pracy z transakcjami
  • Rozproszone transakcje z JTA
  • Używanie JTA Transaction Manager
Moduł. 9
Cache
  • Włączanie obsługi cache
  • Cache manager
  • Obsługa kilku cache'y
  • Adnotacje cache'owania
  • Dodawanie elementów do cache'a
  • Własne strategie tworzenia klucza
  • Warunkowe cache'owanie
  • Usuwanie elementów z cache'a
  • Konfiguracja w XML
Moduł. 10
Spring Security
  • Zabezpieczenie dostępu do URL
  • Logowanie do aplikacji
  • Uwierzytelnianie użytkowników
  • Authentication Providers
  • Obsługa LDAP, OpenID, X.509, JAAS, CAS
  • Autoryzacja i kontrola dostępu (ACL)
  • Ochrony wywołania metod
  • Bezpieczeństwo w widokach
  • Bezpieczeńśtwo w obiektach dziedzinowych
Moduł. 11
Walidacja z konwersją i formatowaniem
  • System konwersji typów Springa
  • Używanie PropertyEditors
  • Formatowanie pól z własnym formaterem
  • ConversionServiceFactoryBean
  • Używanie interfejsu Validatora
  • Używanie walidacji JSR-349
  • Praktyczne uwagi związane z walidacją
Moduł. 12
Harmonogramowanie (scheduling)
  • Zależności potrzebne do harmonogramowania
  • TaskScheduler
  • Tworzenie przykładowego zadania
  • Użycie task-namespace
  • Użycie adnotacji
  • Wywoływanie zadań
  • Asynchroniczne wywoływanie zadań
Moduł. 13
Spring Remoting, komunikaty i REST
  • Spring Http Invoker
  • Wystawianie usług
  • Wywoływanie usług
  • Używanie JMS
  • Komunikaty JMS
  • Transakcje JMS
  • Cache i pule połączeń JMS
  • Konfiguracja ActiveMQ
  • Implementacja JMS Listener w Spring
  • Wysyłanie komunikatów JMS
  • Używanie REST XML/JSON w Spring
  • Używanie RestTemplate
  • Używanie Spring Security z REST
  • Publikowanie kanałów RSS i Atom
  • Używanie AMQP
  • Wprowadznie do WebSocket
  • Używanie WebSocket API
  • Używanie SockJS
  • Wysyłanie komunikatów z STOMP
Moduł. 14
Spring Social
  • Konfiguracja Spring Social
  • Połączenie i współpraca z Twitterem
  • Połączenie i współpraca z Facebook
  • Dostęp do stanu połączenia z dostawcą usługi
  • Używanie Twitter API
  • Spring Social i Spring Security
Moduł. 15
Testowanie ze Springiem
  • Wprowadzenie do Enterprise Testing Framework
  • Adnotacje Springa związane z testowaniem
  • Implementacja testów jednostkowych
  • Wymagane zależności
  • Testowanie kontrolerów MVC
  • Testy integracyjne
  • Test Fixtures dla testów integracyjnych
  • Obługa transakcji w testach integracyjnych
  • Dostęp do bazy danych
  • Konfiguracja profilu pod testowanie
  • Implementacja klas infrastruktury
  • Testowanie w warstwie usług
  • Test front-endu z Selenium
Moduł. 16
Monitoring
  • Wsparcie dla JMX
  • Eksport beana do JMX
  • Konfiguracja VisualVM do monitoringu JMX
  • Monitorowanie statystyk Hibernate'a
Moduł. 17
Spring Integration
  • Podejście do integracji z EAI
  • Integracja z użyciem JMS
  • Wzbogacanie komunikatów o dodatkowe informacje
  • Integracja systemów poprzez system plików
  • Transformacja komunikatu z jednego typu do drugiego
  • Obsługa błędów integracyjnych
  • Splitters i Aggregators
  • Warunkowe przekierowania z Routerami
  • Gateways
Moduł. 18
Spring Batch
  • Model metadanych
  • Konfiguracja infrastuktury
  • Odczyt i zapis
  • Tworzenie własnych klas ItemWriter i ItemReader
  • Przetwarzanie wejścia przed zapisem
  • Transakcje
  • Retry
  • Kontrola wykonania kroków
  • Wyzwalanie jobs
Moduł. 19
NoSQL i BigData
  • Używanie MongoDB
  • Używanie Redis
  • Używanie Hadoop
  • Używanie Neo4j

Parametry szkolenia

Czas trwania
3-5 x 8h
Forma zajęć
Ćwiczenia - 70%, wykład - 30%
Kod
SPR
Wielkość grupy
do 10 osób

1) Dlaczego warto znać Spring Framework w 2018 roku?

Spring Framework ma już kilkanaście lat - to dużo w świecie ciągle zmieniających się trendów technologicznych. Na początku zapoczątkował on rewolucję w podejściu do projektowania aplikacji, która obecnie stała się obowiązującym trendem - Dependency Injection (wstrzykiwanie zależności) oprócz tego dostarczając wiele mechanizmów przydatnych do integrowania różnych narzędzi i bibliotek w jednym systemie. Spring Framework ewoluował z czasem m. in. poprzez zmianę zewnętrznej konfiguracji w formie XML do dużo przyjemniejszych w użyciu adnotacji czy też wsparcie dla nowych wersji narzędzi. Kiedy wydawało się, że już więcej nie da się zrobić, kiedy pojawił się koncept Microservices, twórcy frameworka zaproponowali nowatorskie podejście w postaci Spring Boot, gdzie pod spodem cały czas działa dobrze naoliwiona maszyna Spring Framework. Jeśli więc pracujesz z systemem, który używa Spring Boota i chciałbyś dobrze rozumieć co siedzi pod spodem i świadomie wykorzystywać moc Microservices i reagować na pojawiające się problemy - szkolenie Spring jest właśnie dla Ciebie.

2) Jakie zagadnienia mogą być istotne dla początkujących programistów a jakie dla bardziej zaawansowanych?

Szkolenie Spring Framework daje duże możliwości poznania narzędzia w całej rozciągłości. Możliwy jest też wybór poszczególnych tematów. Programiści zaczynający przygodę ze Springiem powinni zacząć m. in. od tematów:

  • Wprowadzenie do IoC oraz Dependency Injection
  • Zaawansowana konfiguracja fabryki
  • Współpraca z JDBC, Hibernate i JPA
  • Zarządzanie transakcjami
  • Walidacja z konwersją i formatowaniem
  • Harmonogramowanie (Scheduling)
  • Testowanie ze Springiem
Dla programistów bardziej zaawansowanych, szczególnie pracującym w środowisku Microservices rekomendujemy tematy:
  • Współpraca z JPA
  • Spring Security
  • Messaging
  • REST
  • Spring Integration
  • Monitoring
  • Cache
  • NoSQL i Big Data

Jak zamówić

« lista szkoleń