
Spring w akcji. Wydanie V
Spring jest frameworkiem ułatwiającym tworzenie nowoczesnych aplikacji w Javie. To narzędzie, które dynamicznie się rozwija i z każdym nowym wydaniem zapewnia programistom kolejne, ekscytujące możliwości. Piąta wersja Springa okazała się krokiem milowym. Obecnie projektanci mogą tworzyć mikrousługi, korzystać z funkcji programowania reaktywnego i doskonalić budowanie aplikacji zgodnie z modelem MVC. Dzięki pełnej integracji Springa ze Spring Boot nawet najbardziej złożone projekty wymagają minimalnej ilości kodu konfiguracyjnego. W efekcie tworzone aplikacje internetowe są w większym stopniu skalowalne i efektywniejsze w wykorzystywaniu wątków.
To kolejne, uzupełnione i zaktualizowane wydanie przewodnika po frameworku Spring. Książka jest napisana w zwięzłym, przejrzystym i jasnym stylu, dzięki czemu szybko zrozumiesz zasady pracy ze Springiem i zbudujesz nowoczesną aplikację internetową współpracującą z bazą danych. Pokazano tu techniki programowania reaktywnego, pisania mikrousług, wykrywania usług, wyjaśniono również pracę z API RESTful i zasady wdrażania aplikacji. Nauczysz się też stosować najlepsze praktyki programowania w Springu. Książka jest znakomitą pomocą dla programistów Javy, którzy dopiero zaczynają pracę z tym frameworkiem, a także dla tych, którzy chcą opanować nowe rozwiązania oferowane przez kolejne wersje ekosystemu Springa.
W tej książce między innymi:
- solidne wprowadzenie do frameworków Spring i Spring Boot
- integracja aplikacji Springa z innymi aplikacjami
- programowanie reaktywne w tworzeniu aplikacji internetowych
- tworzenie mikrousług i praca ze Spring Cloud
- wdrażanie aplikacji w środowisku produkcyjnym i korzystanie ze Spring Boot Admin
Nowoczesna aplikacja w Javie? Sprawdź Springa!
Wprowadzenie 13
Podziękowania 15
O książce 17
CZĘŚĆ I. PODSTAWY SPRINGA 21
Rozdział 1. Rozpoczęcie pracy ze Springiem 23
- 1.1. Czym jest Spring? 24
- 1.2. Inicjalizacja aplikacji Springa 26
- 1.2.1. Inicjalizacja projektu Springa za pomocą Spring Tool Suite 27
- 1.2.2. Analiza struktury projektu Springa 30
- 1.3. Utworzenie aplikacji Springa 37
- 1.3.1. Obsługa żądań internetowych 37
- 1.3.2. Definiowanie widoku 39
- 1.3.3. Testowanie kontrolera 40
- 1.3.4. Kompilacja i uruchomienie aplikacji 41
- 1.3.5. Poznajemy Spring Boot DevTools 43
- 1.3.6. Przegląd 45
- 1.4. Możliwości Springa 46
- 1.4.1. Podstawowy framework Spring 47
- 1.4.2. Spring Boot 47
- 1.4.3. Spring Data 48
- 1.4.4. Spring Security 48
- 1.4.5. Spring Integration i Spring Batch 48
- 1.4.6. Spring Cloud 48
- Podsumowanie 49
Rozdział 2. Tworzenie aplikacji internetowej 51
- 2.1. Wyświetlanie informacji 52
- 2.1.1. Zdefiniowanie domeny 52
- 2.1.2. Utworzenie klasy kontrolera 55
- 2.1.3. Przygotowanie widoku 58
- 2.2. Przetwarzanie wysłanego formularza 62
- 2.3. Weryfikacja danych wyjściowych formularza 68
- 2.3.1. Deklarowanie reguł weryfikacji danych 68
- 2.3.2. Przeprowadzanie weryfikacji danych podczas ich pobierania z formularza 70
- 2.3.3. Wyświetlanie błędów operacji sprawdzania poprawności danych 72
- 2.4. Praca z kontrolerem widoku 72
- 2.5. Wybór biblioteki szablonów widoku 75
- 2.5.1. Buforowanie szablonów 77
- Podsumowanie 78
Rozdział 3. Praca z danymi 79
- 3.1. Odczyt i zapis danych za pomocą JDBC 79
- 3.1.1. Przygotowanie domeny do obsługi trwałego magazynu danych 82
- 3.1.2. Praca z klasą JdbcTemplate 83
- 3.1.3. Definiowanie schematu i wstępne przygotowanie danych 87
- 3.1.4. Wstawianie danych 89
- 3.2. Implementacja trwałego magazynu danych za pomocą Spring Data JPA 98
- 3.2.1. Dodawanie Spring Data JPA do projektu 99
- 3.2.2. Określenie domeny jako encji 99
- 3.2.3. Deklarowanie repozytoriów JPA 102
- 3.2.4. Dostosowanie do własnych potrzeb repozytoriów JPA 104
- Podsumowanie 106
Rozdział 4. Spring Security 107
- 4.1. Włączenie obsługi Spring Security 108
- 4.2. Konfigurowanie Spring Security 110
- 4.2.1. Istniejący w pamięci magazyn danych użytkownika 111
- 4.2.2. Magazyn danych użytkownika oparty na JDBC 112
- 4.2.3. Magazyn danych użytkownika oparty na LDAP 115
- 4.2.4. Dostosowanie uwierzytelniania użytkownika do własnych potrzeb 118
- 4.3. Zabezpieczanie żądań internetowych 125
- 4.3.1. Zabezpieczanie żądań 126
- 4.3.2. Utworzenie własnej strony logowania 129
- 4.3.3. Wylogowanie 131
- 4.3.4. Ochrona przed atakami typu CSRF 131
- 4.4. Poznanie użytkownika 133
- Podsumowanie 135
Rozdział 5. Praca z właściwościami konfiguracyjnymi 137
- 5.1. Dostosowanie konfiguracji automatycznej do własnych potrzeb 138
- 5.1.1. Poznajemy abstrakcję środowiska Springa 139
- 5.1.2. Konfigurowanie źródła danych 140
- 5.1.3. Konfigurowanie serwera osadzonego 142
- 5.1.4. Konfigurowanie rejestrowania danych 143
- 5.1.5. Używanie wartości właściwości specjalnych 144
- 5.2. Tworzenie własnych właściwości konfiguracyjnych 145
- 5.2.1. Definiowanie komponentów przechowujących właściwości konfiguracyjne 147
- 5.2.2. Deklarowanie metadanych właściwości konfiguracyjnej 149
- 5.3. Konfigurowanie za pomocą profili 152
- 5.3.1. Definiowanie właściwości dla konkretnego profilu 153
- 5.3.2. Aktywowanie profilu 154
- 5.3.3. Warunkowe tworzenie komponentu bean z profilami 155
- Podsumowanie 156
CZĘŚĆ II. ZINTEGROWANY SPRING 157
Rozdział 6. Praca z właściwościami konfiguracyjnymi 159
- 6.1. Utworzenie kontrolerów RESTful 160
- 6.1.1. Pobieranie danych z serwera 162
- 6.1.2. Przekazywanie danych do serwera 167
- 6.1.3. Uaktualnienie danych w serwerze 168
- 6.1.4. Usuwanie danych z serwera 170
- 6.2. Włączenie obsługi hipermediów 171
- 6.2.1. Dodawanie hiperłączy 174
- 6.2.2. Utworzenie komponentu asemblera zasobu 176
- 6.2.3. Nazewnictwo osadzonych związków 180
- 6.3. Włączenie usług back-endu 181
- 6.3.1. Dostosowanie nazw ścieżek dostępu zasobów i relacji 184
- 6.3.2. Stronicowanie i sortowanie 186
- 6.3.3. Dodawanie własnych punktów końcowych 187
- 6.3.4. Dodawanie własnych hiperłączy do punktów końcowych Spring Data 189
- Podsumowanie 190
Rozdział 7. Używanie usług REST 191
- 7.1. Używanie punktów końcowych REST za pomocą RestTemplate 192
- 7.1.1. Pobieranie zasobu 194
- 7.1.2. Przekazywanie do serwera zasobów za pomocą metody HTTP PUT 195
- 7.1.3. Usuwanie zasobu 196
- 7.1.4. Przekazywanie do serwera zasobów za pomocą metody HTTP POST 196
- 7.2. Poruszanie się po API REST za pomocą Traverson 197
- Podsumowanie 199
Rozdział 8. Asynchroniczne wysyłanie komunikatów 201
- 8.1. Wysyłanie komunikatów za pomocą JMS 202
- 8.1.1. Konfigurowanie JMS 202
- 8.1.2. Wysyłanie komunikatów za pomocą JmsTemplate 204
- 8.1.3. Otrzymywanie komunikatów JMS 211
- 8.2. Praca z RabbitMQ i AMQP 215
- 8.2.1. Dodawanie obsługi brokera RabbitMQ do Springa 216
- 8.2.2. Wysyłanie komunikatów za pomocą RabbitTemplate 217
- 8.2.3. Pobieranie komunikatu z RabbitMQ 221
- 8.3. Obsługa komunikatów za pomocą Apache Kafki 225
- 8.3.1. Konfigurowanie Springa do obsługi komunikatów Kafki 226
- 8.3.2. Wysyłanie komunikatów za pomocą KafkaTemplate 227
- 8.3.3. Utworzenie komponentu nasłuchującego Kafki 229
- Podsumowanie 231
Rozdział 9. Integracja Springa 233
- 9.1. Deklarowanie prostego przepływu integracji 234
- 9.1.1. Definiowanie przepływu integracji za pomocą XML-a 235
- 9.1.2. Konfigurowanie przepływu integracji za pomocą Javy 237
- 9.1.3. Konfigurowanie Spring Integration za pomocą języka specjalizowanego 239
- 9.2. Poznajemy Spring Integration 241
- 9.2.1. Kanał komunikatu 241
- 9.2.2. Filtr 243
- 9.2.3. Przekształcenie 244
- 9.2.4. Router 245
- 9.2.5. Spliter 247
- 9.2.6. Aktywator usługi 249
- 9.2.7. Brama 251
- 9.2.8. Adapter kanału 252
- 9.2.9. Moduł punktu końcowego 254
- 9.3. Utworzenie własnego przepływu integracji dotyczącego poczty elektronicznej 256
- Podsumowanie 261
CZĘŚĆ III. REAKTYWNY SPRING 263
Rozdział 10. Wprowadzenie do projektu Reactor 265
- 10.1. Wprowadzenie do programowania reaktywnego 266
- 10.1.1. Definiowanie strumienia reaktywnego 267
- 10.2. Rozpoczęcie pracy z projektem Reactor 269
- 10.2.1. Wykres przepływu reaktywnego 270
- 10.2.2. Dodawanie zależności projektu Reactor 271
- 10.3. Najczęściej stosowane operacje reaktywne 272
- 10.3.1. Tworzenie typu reaktywnego 273
- 10.3.2. Łączenie typów reaktywnych 277
- 10.3.3. Przekształcanie i filtrowanie strumienia reaktywnego 281
- 10.3.4. Przeprowadzanie operacji logicznej na typie reaktywnym 290
- Podsumowanie 292
Rozdział 11. Tworzenie reaktywnego API 293
- 11.1. Praca z frameworkiem WebFlux w Springu 293
- 11.1.1. Wprowadzenie do Spring WebFlux 295
- 11.1.2. Definiowanie kontrolera reaktywnego 296
- 11.2. Definiowanie funkcyjnych procedur obsługi żądania 300
- 11.3. Testowanie kontrolera reaktywnego 303
- 11.3.1. Testowanie żądań HTTP GET 303
- 11.3.2. Testowanie żądań POST 306
- 11.3.3. Testowanie działającego serwera 307
- 11.4. Reaktywne używanie API REST 308
- 11.4.1. Pobieranie zasobów 309
- 11.4.2. Przekazywanie zasobu 311
- 11.4.3. Usunięcie zasobu 312
- 11.4.4. Obsługa błędów 312
- 11.4.5. Wymiana żądań 314
- 11.5. Zabezpieczanie API reaktywnego 316
- 11.5.1. Konfigurowanie zabezpieczeń reaktywnej aplikacji internetowej 316
- 11.5.2. Konfigurowanie reaktywnej usługi szczegółów związanych z użytkownikiem 318
- Podsumowanie 319
Rozdział 12. Reaktywny trwały magazyn danych 321
- 12.1. Reaktywność i Spring Data 322
- 12.1.1. Reaktywny Spring Data 323
- 12.1.2. Konwersja między typem reaktywnym a niereaktywnym 323
- 12.1.3. Opracowanie repozytorium reaktywnego 325
- 12.2. Praca z reaktywnymi repozytoriami bazy danych Cassandra 325
- 12.2.1. Włączenie obsługi Spring Data Cassandra 326
- 12.2.2. Modelowanie danych w bazie danych Cassandra 328
- 12.2.3. Mapowanie typów domeny pod kątem przechowywania informacji w bazie danych Cassandra 329
- 12.2.4. Tworzenie reaktywnego repozytorium bazy danych Cassandra 335
- 12.3. Tworzenie reaktywnych repozytoriów MongoDB 337
- 12.3.1. Dodawanie obsługi Spring Data MongoDB 338
- 12.3.2. Mapowanie typu domeny na dokument MongoDB 339
- 12.3.3. Tworzenie interfejsów repozytoriów reaktywnych MongoDB 343
- Podsumowanie 345
CZĘŚĆ IV. NATYWNA CHMURA SPRINGA 347
Rozdział 13. Odkrywanie usług 349
- 13.1. Poznajemy mikrousługi 350
- 13.2. Konfiguracja rejestru usług 352
- 13.2.1. Konfigurowanie Eureki 356
- 13.2.2. Skalowanie serwera Eureka 359
- 13.3. Rejestrowanie i odkrywanie usług 361
- 13.3.1. Konfigurowanie właściwości klienta Eureki 362
- 13.3.2. Używanie usługi 363
- Podsumowanie 368
Rozdział 14. Zarządzanie konfiguracją 371
- 14.1. Konfiguracja współdzielona 372
- 14.2. Uruchamianie serwera konfiguracji 373
- 14.2.1. Włączanie Config Server 374
- 14.2.2. Umieszczanie właściwości w repozytorium konfiguracyjnym 377
- 14.3. Używanie konfiguracji współdzielonej 380
- 14.4. Udostępnienie konfiguracji przeznaczonej dla konkretnej aplikacji i konkretnego profilu 382
- 14.4.1. Udostępnianie właściwości przeznaczonych dla konkretnej aplikacji 382
- 14.4.2. Udostępnianie właściwości z profili 383
- 14.5. Utajnienie właściwości konfiguracyjnych 385
- 14.5.1. Szyfrowanie właściwości w repozytorium Git 386
- 14.5.2. Przechowywanie danych wrażliwych w magazynie Vault 389
- 14.6. Odświeżanie właściwości konfiguracyjnych w locie 393
- 14.6.1. Ręczne odświeżanie właściwości konfiguracyjnych 394
- 14.6.2. Automatyczne odświeżanie właściwości konfiguracyjnych 396
- Podsumowanie 404
Rozdział 15. Obsługa awarii i opóźnień 405
- 15.1. Wprowadzenie do wzorca bezpiecznika 405
- 15.2. Deklarowanie bezpiecznika 408
- 15.2.1. Łagodzenie opóźnienia 410
- 15.2.2. Zarządzanie wartością graniczną bezpiecznika 411
- 15.3. Monitorowanie awarii 412
- 15.3.1. Wprowadzenie do panelu kontrolnego biblioteki Hystrix 413
- 15.3.2. Pula wątków biblioteki Hystrix 416
- 15.4. Agregowanie wielu strumieni biblioteki Hystrix 418
- Podsumowanie 419
CZĘŚĆ V. WDRAŻANIE APLIKACJI SPRINGA 421
Rozdział 16. Praca ze Spring Boot Actuator 423
- 16.1. Wprowadzenie do Actuatora 424
- 16.1.1. Konfigurowanie bazowej ścieżki dostępu Actuatora 425
- 16.1.2. Włączanie i wyłączanie punktów końcowych Actuatora 426
- 16.2. Używanie punktów końcowych Actuatora 427
- 16.2.1. Pobieranie podstawowych informacji o aplikacji 428
- 16.2.2. Wyświetlanie konfiguracji aplikacji 431
- 16.2.3. Wyświetlanie informacji o aktywności aplikacji 439
- 16.2.4. Dane statystyczne dotyczące środowiska uruchomieniowego 442
- 16.3. Dostosowanie Actuatora do własnych potrzeb 444
- 16.3.1. Dodawanie informacji dostarczanych później przez punkt końcowy /info 445
- 16.3.2. Definiowanie własnych wskaźników informacji o stanie aplikacji 449
- 16.3.3. Rejestrowanie niestandardowych danych statystycznych 450
- 16.3.4. Tworzenie własnego punktu końcowego 452
- 16.4. Zabezpieczanie Actuatora 455
- Podsumowanie 457
Rozdział 17. Administrowanie Springiem 459
- 17.1. Używanie Spring Boot Admin 459
- 17.1.1. Tworzenie serwera administracyjnego 460
- 17.1.2. Rejestrowanie klientów serwera administracyjnego 462
- 17.2. Poznajemy serwer administracyjny 465
- 17.2.1. Wyświetlanie ogólnych informacji o stanie aplikacji 466
- 17.2.2. Obserwowanie kluczowych danych statystycznych 466
- 17.2.3. Analiza zmiennych środowiskowych 467
- 17.2.4. Wyświetlanie i zmiana poziomu rejestrowania danych 469
- 17.2.5. Monitorowanie wątków 469
- 17.2.6. Monitorowanie żądań HTTP 470
- 17.3. Zabezpieczanie serwera administracyjnego 471
- 17.3.1. Włączanie logowania w serwerze administracyjnym 472
- 17.3.2. Uwierzytelnianie z użyciem Actuatora 473
- Podsumowanie 474
Rozdział 18. Monitorowanie Springa za pomocą JMX 475
- 18.1. Praca z Actuatorem i MBean 476
- 18.2. Tworzenie własnego komponentu MBean 478
- 18.3. Wysyłanie powiadomień 480
- Podsumowanie 481
Rozdział 19. Wdrażanie aplikacji Springa 483
- 19.1. Opcje podczas wdrażania aplikacji 484
- 19.2. Kompilowanie i wdrażanie pliku WAR 485
- 19.3. Przekazanie pliku JAR do Cloud Foundry 487
- 19.4. Umieszczanie aplikacji Spring Boota w kontenerze Dockera 490
- 19.5. To nie koniec, ale dopiero początek 494
- Podsumowanie 494
DODATKI 495
Dodatek A. Tworzenie aplikacji Springa 497
- A.1. Inicjalizacja projektu za pomocą Spring Tool Suite 497
- A.2. Tworzenie projektu za pomocą IntelliJ IDEA 500
- A.3. Tworzenie projektu za pomocą NetBeans 503
- A.4. Inicjalizacja projektu na stronie start.spring.io 506
- A.5. Inicjalizacja projektu z poziomu powłoki 510
- A.5.1. Polecenie curl i API Initializr 510
- A.5.2. Interfejs powłoki dla Spring Boota 512
- A.6. Tworzenie aplikacji Springa za pomocą metaframeworka 513
- A.7. Kompilowanie i uruchamianie projektu 513
Skorowidz 515
- Tytuł: Spring w akcji. Wydanie V
- Autor: Craig Walls
- Tytuł oryginału: Spring in Action, 5th Edition
- Tłumaczenie: Robert Górczyński
- ISBN książki drukowanej: 978-83-283-5606-1, 9788328356061
- Data wydania książki drukowanej: 2019-12-23
- ISBN Ebooka: 978-83-283-5607-8, 9788328356078
- Data wydania: 2019-12-23
- Format: 168x237
- Identyfikator pozycji: sprwa5
- Kategorie:
- Wydawca: Helion