Spring MVC 4 : projektowanie zaawansowanych aplikacji WWW
Transkrypt
Spring MVC 4 : projektowanie zaawansowanych aplikacji WWW
Spring MVC 4 : projektowanie zaawansowanych aplikacji WWW / Geoffroy Warin. – Gliwice, cop. 2016 Spis treści O autorze 11 O korektorach merytorycznych 12 Przedmowa 15 Rozdział 1. Błyskawiczne tworzenie aplikacji Spring Rozpoczęcie pracy w środowisku Spring Tool Suite Rozpoczęcie pracy w środowisku IntelliJ Rozpoczęcie pracy w serwisie start.Spring.io Rozpoczęcie pracy za pomocą wiersza poleceń Pierwsze kroki Kompilowanie kodu za pomocą narzędzia Gradle Chcę zobaczyć kod! Spring Boot od wewnątrz Dyspozytor i konfiguracja elementów aplikacji Interpreter widoków, zasoby statyczne ustawienia regionalne Konfiguracja obsługi błędów i kodowania znaków Konfiguracja wbudowanego serwletu kontenera serwera (Tomcat) Port http Konfiguracja protokołu SSL Inne opcje konfiguracyjne Podsumowanie 19 20 25 26 26 27 28 32 34 35 38 40 42 44 44 45 46 Rozdział 2. Tajniki architektury MVC Architektura MVC Krytyka architektury MVC i dobre praktyki Anemiczny model domeny Informacje ze źródeł Platforma MVC 1-0-1 Szablony Thymeleaf Twoja pierwsza strona Architektura platformy Spring MVC Serwlet DispatcherServlet Przekazywanie danych do widoku Język Spring Expression Language Użycie parametru przy odczytywaniu danych Dosyć już „Witaj, świecie!", odczytujmy tweety! 47 47 48 48 50 50 51 52 54 54 55 56 56 58 Rejestracja aplikacji Zastosowanie projektu Spring Social Dostęp do serwisu Twitter Strumienie i funkcje lambda w Java 8 Styl material design i biblioteka WebJars Układy stron Poruszanie się po witrynie Punkt kontrolny Podsumowanie 58 60 60 62 63 66 67 71 72 Rozdział 3. Obsługa formularzy i złożonych adresów URL Strona profilu — formularz Weryfikacja danych Dostosowanie komunikatów o błędach Niestandardowe adnotacje do weryfikacji danych Internacjonalizacja Zmiana ustawień regionalnych Tłumaczenie tekstów aplikacji Lista w formularzu Weryfikacja danych po stronie klienta Punkt kontrolny Podsumowanie 73 73 80 82 85 85 87 89 91 94 96 96 Rozdział 4. Ładowanie plików i obsługa błędów Ładowanie plików Umieszczanie obrazu w odpowiedzi na zapytanie Zarządzanie konfiguracją ładowania plików Wyświetlenie załadowanego obrazu Obsługa błędów ładowania plików Tłumaczenia komunikatów o błędach Zapisywanie profilu użytkownika w sesji Własne strony z komunikatami o błędach Zmienne tablicowe w adresach URL Wszystko razem Punkt kontrolny Podsumowanie 99 99 104 104 107 108 112 112 116 117 121 128 129 Rozdział 5. Tworzenie aplikacji w stylu REST Czym jest styl REST? Model dojrzałości Richardsona Poziom 0 - HTTP Poziom 1 - zasoby Poziom 2 - metody HTTP Poziom 3 - kontrolki hipermediów Wersje interfejsu API 131 131 132 132 132 133 134 135 Przydatne kody HTTP Klient jest królem Diagnostyka interfejsu REST API Rozszerzenia przeglądarek wyświetlające format JSON Klient REST w przeglądarce Narzędzie httpie Dostosowanie odpowiedzi JSON Interfejs API do zarządzania zasobami użytkowników Kody stanu i obsługa wyjątków Zwrot kodu stanu za pomocą obiektu ResponseEntity Zwrot kodów stanu za pomocą wyjątków Dokumentowanie interfejsu za pomocą platformy Swagger Tworzenie odpowiedzi XML Punkt kontrolny Podsumowanie 136 137 139 139 139 139 139 144 147 148 149 153 154 156 157 Rozdział 6. Zabezpieczanie aplikacji Podstawowe uwierzytelnienie Upoważnieni użytkownicy Uprawnione adresy URL Znaczniki bezpieczeństwa w szablonie Thymeleaf Formularz logowania Uwierzytelnienie przez Twitter Konfiguracja uwierzytelnienia społecznościowego Objaśnienia do kodu Rozproszone sesje Protokół SSL Generowanie certyfikatu z własnym podpisem Jeden kanał Dwa kanały Za bezpiecznym serwerem Punkt kontrolny Podsumowanie 159 159 160 163 164 165 170 170 174 176 178 179 179 180 181 181 182 Rozdział 7. Zero ryzyka — testy jednostkowe i integracyjne Dlaczego powinienem testować swój kod? Jak powinieneś testować swój kod? Programowanie zorientowane na testy Testy jednostkowe Narzędzia odpowiednie do zadania Testy integracyjne Twój pierwszy test jednostkowy Imitacje i atrapy Imitowanie klas przy użyciu narzędzia Mockito Tworzenie atrap klas podczas testów 183 183 184 185 186 187 187 188 191 191 193 Trzeba używać imitacji czy atrap? Testy jednostkowe kontrolerów REST Testowanie uwierzytelnienia Tworzenie testów integracyjnych Konfiguracja systemu Gradle Pierwszy test FluentLenium Obiekty stron w bibliotece FluentLenium Tworzenie testów w języku Groovy Testy jednostkowe z wykorzystaniem biblioteki Spock Testy integracyjne z wykorzystaniem biblioteki Geb Obiekty stron w bibliotece Geb Punkt kontrolny Podsumowanie 195 195 201 202 202 204 209 212 212 215 217 220 221 Rozdział 8. Optymalizacja zapytań Produkcyjny profil aplikacji Kompresja gzip Kontrola pamięci podręcznej Pamięć podręczna aplikacji Unieważnianie danych w pamięci podręcznej Rozproszona pamięć podręczna Metody asynchroniczne Tagi ETag Protokół WebSocket Punkt kontrolny Podsumowanie 223 223 224 224 226 231 232 233 237 241 244 244 Rozdział 9. Udostępnianie aplikacji w chmurze Wybór operatora usług chmurowych Cloud Foundry OpenShift Heroku Udostępnienie aplikacji w usłudze Pivotal Web Services Instalacja narzędzi konsolowych Cloud Foundry Złożenie aplikacji Aktywacja usługi Redis Udostępnienie aplikacji w usłudze Heroku Instalacja narzędzi Konfiguracja aplikacji Profil Heroku Uruchomienie aplikacji Aktywacja usługi Redis Ulepszanie aplikacji Podsumowanie 245 245 246 246 247 247 247 248 252 253 253 254 255 256 258 259 260 Rozdział 10. Nie tylko Spring Web Platforma Spring Core (rdzeń) Execution (uruchamianie) Data (dane) Inne ciekawe projekty Wdrożenie Platforma Docker Aplikacje jednostronicowe Najważniejsi gracze Przyszłość Bezstanowość Podsumowanie 261 261 262 262 262 263 263 263 264 265 265 266 266 Skorowidz 267 oprac. BPK