Helion


Szczegóły ebooka

Spring w akcji. Wydanie V

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