Cel szkolenia:

Celem szkolenia jest poznanie zasad budowania aplikacji internetowych w oparciu o Spring Framework wraz z zagadnieniami takimi jak: mapowanie obiektowo-relacyjne i tworzenie warstwy dostępu do danych za pomocą JPA, tworzenie warstwy usług przy pomocy kontenera Spring IoC, oprogramowanie frontendu web dzięki JSF.

W szczególności uczestnicy:

  • poznają wzorzec Dependency Injection i nauczą się stosować go w praktyce przy użyciu kontenera IoC Spring Framework
  • dowiedzą się jak konfigurować komponenty z poziomu deskryptorów XML Spring Framework i za pomocą adnotacji Java
  • poznają zasadę mapowania relacyjno-obiektowego, i nauczą się projektować warstwę trwałości w oparciu o JPA począwszy od prostych encji po złożone zagadnienia takie jak dziedziczenie
  • dowiedzą się jak odczytywać i utrwalać encje, zapewniać transakcyjność operacji
  • dowiedzą się jak dbać o spójność danych i wydajność aplikacji
  • nauczą się budować bogate interfejsy użytkownika w oparciu o Java Server Faces z użyciem JSF i faceletów
  • nauczą się wykorzystywać gotowe komponenty biblioteczne JSF jak również tworzyć własne
  • dowiedzą się jak zwiększyć wygodę interfejsu użytkownika za pomocą AJAX
  • poznają zaawansowane zagadnienia takie jak AOP
  • dowiedzą się jak testować ww. komponenty
  • poznają zagadnienia związane z bezpieczeństwem i niezawodnością aplikacji internetowych
  • dowiedzą się jak uruchamiać stworzone w powyższy sposób aplikacje na serwerach Tomcat i Jetty

Adresaci Szkolenia:

Szkolenie adresowane jest do programistów Java pragnących dowiedzieć się jak tworzyć bezpieczne aplikacje internetowe w oparciu o Spring Framework oraz warstwę dostępu do danych realizowaną przez Hibernate.

Mocne strony szkolenia:

Program obejmuje całościowo i wyczerpująco zagadnienia tworzenia aplikacji internetowych. W przeciwieństwie do większości szkoleń, szkolenie nie koncentruje się na jednej technologii, lecz zawiera najważniejsze zagadnienia z wybranych techonologii. Dzięki temu, uczestnicy po skończeniu szkolenia, będą mogli tworzyć samodzielnie kompletne aplikacje WWW, uzupełniając już we własnym zakresie wiedzę w miarę potrzeb. Program jest ciągle uaktualniany tak, by uwzględnić nowo powstające trendy.

Wymagania:

Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP), podstawy relacyjnych baz danych i SQL, podstawowa znajomość HTML. Zalecana jest również umiejętność tworzenia aplikacji webowych w technologiach Servlet/JSP (do poznania na kursie J/WEB1).

Parametry szkolenia:

5*8 godzin (5*7 godzin netto) wykładów i warsztatów (z wyraźną przewagą warsztatów). W trakcie warsztatów, oprócz prostych ćwiczeń, projektowana i implementowana jest prosta kompleksowa aplikacja.

Wielkość grupy: maks. 8-10 osób.

Program szkolenia

  1. Wprowadzenie
    1. Warstwowa architektura systemów informatycznych
    2. Architektoniczne wzorce projektowe: IoC, DI, MVC
    3. Warstwa dostępu do danych: JDBC, DAO, JPA
    4. Warstwa webowa: HTML, AJAX
    5. Zagadnienia integracji systemów
    6. Programowanie zorientowane aspektowo: AOP
    7. Zagadnienia związane z testowaniem i bezpieczeństwem
  2. Kontener obiektów – Spring IoC
    1. Architektura komponentowa aplikacji
    2. Programowanie zorientowane na interfejsy
    3. Wzorce Inversion of Control i Dependency Injection
    4. Inicjalizacja kontenera
    5. Definiowanie i inicjalizacja komponentów
      1. Konstruktory, fabryki
      2. Własności proste
      3. Własności złożone, kolekcje
      4. Leniwa inicjalizacja
    6. Zasięg komponentów
      1. singleton, prototype
      2. zasięgi własne
    7. Zależności pomiędzy komponentami
    8. Cykl życia komponentów
    9. Rozszerzanie funkcjonalności kontenera
    10. Programowanie zdarzeniowe
    11. Konwersja danych w Spring
      1. Edytory właściwości
      2. Konwersja typów
      3. Formatowanie
      4. Specyfikowanie ograniczeń
    12. Spring Expression Language
      1. Przegląd możliwości
      2. Składnia
      3. Użycie
  3. Podstawy Spring AOP
    1. Pojęcie proxy
    2. Podstawowa terminologia: aspect, join point, advice, pointcut
    3. Konfiguracja
    4. Zastosowanie w kontenerze Spring
    5. Zastosowanie we własnych
    6. Integracja z AspectJ
  4. Java Persistence API2.1
    1. Koncepcja Mapowania relacyjno-obiektowego
    2. Klasy Encyjne
      1. klasy proste
      2. klasy zagnieżdżone
      3. Pola i dostęp do pól
      4. Pola będące kolekcjami
    3. Asocjacje – z uwzględnieniem krotności i kierunkowości
    4. Klucze
      1. Proste
      2. Złożone
      3. Automatyczne generowanie kluczy
    5. Nazewnictwo obiektów w bazie danych
      1. Domyślne mapowanie
      2. Zmiana domyślnych mapowań
    6. Kontekst trwałości (PersistentContext):
      1. Zarządzany przez kontener i zarządzany przez aplikację
      2. Transakcyjny(Transaction) i rozszerzony(Extended)
    7. Cykl życia encji
    8. Operacje na danych
    9. Transakcje
    10. Zapytania
      1. Tworzenie zapytań w JPQL
        1. Składnia
        2. Query i TypedQuery
        3. Zapytania nazwane
        4. Zapytania natywne
      2. JPA2.1 Criteria API
        1. Idea Criteria API, podstawowe składowe
        2. MetaModel
          1. Koncepcja
          2. Klasy MetaModel w postaci kanonicznej i niekanonicznej
          3. MetaModel API
        3. Tworzenie silnie typowanych zapytań
        4. Tworzenie słabo typowanych, dynamicznych zapytań
        5. Edycja zapytań
        6. Podejścia alternatywne: LIQUidFORM
      3. Typowe scenariusze, w tym serach-within i serach-by-example
      4. Zapytania natywne, mapowanie wyników
    11. Metody nasłuchiwania cyklu życia
    12. Walidacja
      1. Bean Validation 1.1
        1. Koncepcja Bean Validation
        2. Definiowanie i nakładanie ograniczeń na typy, pola, metody
        3. Parametryzowanie ograniczeń
        4. Wbudowane ograniczenia
        5. Komponowanie ograniczeń złożonych
        6. Tworzenie walidatorów
        7. Proces walidacji
          1. Pola, obiekty i grafy obiektów
          2. Grupy i sekwencje
          3. Blokowanie dostępu do pola oraz kaskadowego dostępu
        8. API i wyjątki
        9. Dostosowywanie treści błędów walidacyjnych
    13. JPA2.1 a Bean Validation
      1. Konfiguracja walidacji
      2. Zasada działania Bean Validation w kontekście JPA
      3. Ograniczenia walidujące a generacja obiektów bazy danych
    14. Modele i implementacja dziedziczenia
    15. Zagadnienia spójności danych
      1. Optimistic locking
      2. Pessimistic locking
      3. Rozszerzenia w JPA2.1
    16. Cache drugiego poziomu
      1. Idea cache 2 poziomu
      2. Konfiguracja i tryby pracy cache
      3. Konfiguracja encji
      4. Interakcja cache - baza
      5. Cache w oparciu o Hibernate (dla szkolenia bazującego na hibernate)
      6. Cache w oparciu o mechanizmy JPA2.1
      7. Zagrożenia
    17. Testowanie komponentów wykorzystujących JPA
    18. Konfiguracja i deployment
      1. Jako aplikacja Java SE/dektop
      2. Jako moduł web
      3. W obrębie modułu ejb
    19. JPA a biblioteki dostawców (Hibernate, Toplink, EclipseLink, OpenJPA)
    20. Zagadnienia specyficzne dla Hibernate (dla szkolenia bazującego na hibernate)
      1. Hibernate API
      2. Wybrane dodatkowe możliwości
      3. Podprojekty Hibernate: Search, Shards, Validator, Envers
    21. Wzorce Projektowe warstwy dostępu do danych
  5. Integracja kontenera Spring z warstwą trwałości
    1. Warstwa DAO
      1. Klasyczne wsparcie dla budowy warstwy DAO
      2. Spring Data - nowe podejście do realizacji warstwy trwałości w środowisku Spring
      3. Spring Data JPA – specjalizowana wersja dla JPA
    2. Transakcje
      1. Poziomy izolacji transakcji
      2. Podsystem transakcji w Spring
      3. Deklaratywna specyfikacja transakcji
      4. Blokowanie pesymistyczne i optymistyczne
      5. Długie konwersacje
    3. Ujednolicona obsługa wyjątków
  6. Interfejs Webowy
    1. Wprowadzenie do JSF
      1. Typowe problemy aplikacji Webowej
      2. Wprowadzenie do modelu komponentowo-zdarzeniowego
    2. Cykl przetwarzania żądania
      1. Rodzaje żądań
      2. Fazy cyklu
      3. Przetwarzanie pełne i częściowe
    3. Komponentowy model interfejsu
    4. Główne klasy i interfejsy
    5. Model zarządzania beanami logiki
      1. Idea i rodzaje zasięgów
      2. Konfiguracja
      3. Zasięgi „Custom”
    6. Expression Language
    7. Definiowanie widoku
      1. Przegląd dostępnych komponentów standardowych
        1. Biblioteka HTML
        2. Biblioteka Core
      2. View Declaration Language
      3. JSF w oparciu o facelets
        1. Korzyści wynikające z technologii
        2. Mechanizmy szablonowania
        3. Wbudowane znaczniki
        4. Tworzenie komponentów złożonych (Composite Components)
      4. Historia - JSF w oparciu o JSP
      5. JSF a REST
      6. Wsparcie dla HTML5
    8. Model konwersji
      1. Konwertery wbudowane
      2. Tworzenie konwerterów
    9. Model walidacji
      1. Walidatory wbudowane
      2. Tworzenie walidatorów
      3. Walidator domyślny
      4. Bean Validation 1.1 a JSF
      5. Zdarzenia związane z walidacją
      6. Realizacja nietypowych/złożonych scenariuszy walidacji
    10. Model zdarzeń
      1. Zdarzenia i słuchacze – podstawy modelu zdarzeniowego
      2. Zdarzenia akcji i zmiany wartości
      3. Zdarzenia zmiany faz
      4. Zdarzenia systemowe
    11. Model nawigacji
      1. Nawigacja „klasyczna”
      2. Nawigacja skrócona
      3. Nawigacja warunkowa
      4. Dynamiczna konfiguracja nawigacji
      5. Pull i push MVC
    12. Główne składowe aplikacji JSF i internacjonalizacja
    13. Typowe problemy przy tworzeniu interfejsu min
      1. Formularz w postaci tabelki
      2. "Inteligentna” paginacja
      3. Master-Detail, LOV
    14. Obsługa błędów
    15. Zasoby aplikacji
      1. Żądanie o zasoby (Resuorce Request) i jego obsługa
      2. Zależności od zasobów
      3. Znaczniki i obiekty EL
      4. Pakowanie i internacjonalizacja zasobów
    16. Wzbogacanie komponentów – Behaviour
    17. Tworzenie komponentów „od zera”
      1. Tworzenie komponentów
      2. Tworzenie rendererów
      3. Tworzenie znaczników
    18. Pakowanie i konfiguracja aplikacji, fazy projektu
    19. Testowanie interfejsu zbudowanego na JSF (JSFUnit/Selenium)
    20. Zabezpieczanie aplikacji
  7. Tworzenie aplikacji WWW z użyciem technologii AJAX i JSF
    1. Koncepcja AJAX i modele komunikacji
    2. Przegląd podejść do tworzenia aplikacji AJAX (warstwowe – JSF, klient-serwer – GWT, …)
    3. Tworzenie aplikacji AJAX „od zera” (XMLHttpRequest)
    4. JSON
      1. Wprowadzenie
      2. Java API for JSON Processing
      3. JSON w RESTFull webservice
    5. Podstawy bibliotek Prototype i JQuery w kontekście manipulacji drzewem DOM i komunikacji AJAX
    6. „Natywne” podejście JSF2
      1. Znacznik f:ajax i Ajax Behaviour
      2. Przetwarzanie żądań typu Ajax
      3. Przetwarzanie częściowe (Partial processing)
      4. Selektywne działania na drzewie komponentów
      5. Kolejkowanie
      6. Obsługa błędów
    7. Popularne biblioteki współpracujące z JSF
      1. PrimeFaces
      2. OmniFaces
      3. RichFaces
      4. PrettyFaces
      5. IceFaces
  8. Warstwa web – nawigacja za pomocą Spring WebFlow
    1. Konfiguracja
    2. Definiowanie przepływów
    3. Język wyrażeń WebFlow Expression Language
    4. Renderowanie widoków
    5. Akcje
    6. Persystentne przepływy
    7. Bezpieczeństwo przepływów
    8. Dziedzieczenie przepływów
    9. Integracja z JSF
    10. Testowanie przepływów
  9. Wprowadzenie do Spring Security
    1. Wprowadzenie – przegląd możliwości
    2. Konfiguracja
    3. Bezpieczeństwo warstwy web
      1. Rodzaje uwierzytelniania
      2. Opcje dodatkowe
      3. Poufność kanału HTTP/HTTPS
      4. Zarządzanie sesją
      5. Wsparcie dla zewnętrznych mechanizmów uwierzytelniania
      6. Definiowanie własnych filtrów
    4. Zabezpieczanie metod komponentów kontenera Spring

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email