Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00405 005529 18980953 na godz. na dobę w sumie
Język Kotlin na platformie Spring. Programowanie aplikacji internetowych - książka
Język Kotlin na platformie Spring. Programowanie aplikacji internetowych - książka
Autor: Liczba stron: 240
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-5183-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> tworzenie stron www
Porównaj ceny (książka, ebook (-35%), audiobook).

Kotlin jest interoperacyjnym, obiektowym i coraz popularniejszym językiem programowania. Charakteryzuje się statycznie typowanymi zmiennymi, czytelną składnią i znakomitą reaktywnością. Z kolei Spring jest wyjątkowo cenioną platformą do tworzenia stron WWW. Służy do tworzenia aplikacji internetowych udostępniających interfejs REST i inne usługi. Spring znakomicie współpracuje z Kotlinem, co pozwala programiście na wyższy poziom skutecznego programowania i efektywne tworzenie funkcjonalnych, stabilnych, skalowalnych i reaktywnych aplikacji. Przy tym wszystkim obydwa te produkty w całości są otwartym oprogramowaniem!

Ta książka jest przewodnikiem dla osób, które chcą szybko poznać platformę Spring i zacząć posługiwać się językiem Kotlin w stopniu pozwalającym na tworzenie aplikacji internetowych. Zawiera przystępne wprowadzenie do pracy na platformie Spring i jej konfiguracji dla potrzeb Kotlina; omawia też zasady projektowania aplikacji za pomocą tych narzędzi. Sporo uwagi autor poświęca tworzeniu systemu mikrousług udostępniających interfejs REST. Opisuje również techniki posługiwania się tak pożytecznymi narzędziami jak Spring Data, Spring Security czy biblioteka JUnit, a także sposoby wdrażania aplikacji w chmurze AWS.

W książce między innymi:

Kotlin: tak świetny jak Java, ale o wiele łatwiejszy i przyjemniejszy!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Building Applications with Spring 5 and Kotlin Tłumaczenie: Andrzej Watrak ISBN: 978-83-283-5183-7 Copyright © Packt Publishing 2018. First published in the English language under the title ‘Building Applications with Spring 5 and Kotlin – (9781788394802)’ Polish edition copyright © 2019 by Helion SA All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Helion SA ul. Kościuszki 1c, 44-100 Gliwice tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Dodatkowe materiały do książki można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/jkotsp.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/jkotsp Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci O autorze O recenzencie Przedmowa Rozdzia(cid:239) 1. Przygotowanie Jaka jest Twoja misja? Dzielenie kodu na osobne jednostki Opis jednostek Planowanie pracy Przygotowanie (cid:258)rodowiska roboczego Instalacja narz(cid:218)dzia Git Kompilacja kodu (cid:283)ród(cid:239)owego narz(cid:218)dzia Git Instalacja pakietu JDK Instalacja (cid:258)rodowiska programistycznego Pierwsze uruchomienie (cid:258)rodowiska IntelliJ IDEA Instalacja platformy Spring 5 Instalacja programu Postman Utworzenie repozytorium Git Podsumowanie Rozdzia(cid:239) 2. Pierwsze kroki z platform(cid:200) Spring Czym jest platforma Spring? Jakie funkcjonalno(cid:258)ci oferuje platforma Spring? Jak jest obs(cid:239)ugiwany j(cid:218)zyk Kotlin? Tworzenie projektu Spring Czym jest narz(cid:218)dzie Spring Initializr? Utworzenie projektu Tworzenie projektu w (cid:258)rodowisku IntelliJ IDEA Podsumowanie 7 8 9 13 13 14 14 15 16 16 18 19 20 21 23 28 29 31 33 33 34 38 38 39 39 48 50 Poleć książkęKup książkę Spis tre(cid:286)ci Rozdzia(cid:239) 3. Twoja pierwsza us(cid:239)uga Spring REST w j(cid:218)zyku Kotlin Zdefiniowanie zale(cid:285)no(cid:258)ci w projekcie Utworzenie klasy kontrolera Co jeszcze mo(cid:285)na uzyska(cid:202)? Utworzenie klasy danych Obs(cid:239)uga innych rodzajów zapyta(cid:241) Uruchomienie aplikacji (cid:165)cie(cid:285)ki udost(cid:218)pniane przez bibliotek(cid:218) Actuator Dodanie komponentu Service Podsumowanie Rozdzia(cid:239) 4. Interfejs Spring Data JPA i baza danych MySQL Wprowadzenie do interfejsu Spring Data JPA Co oferuje biblioteka Spring Data? Jakie modu(cid:239)y Spring Data b(cid:218)d(cid:200) potrzebne? Interfejs Spring Data JPA Instalacja bazy MySQL Instalacja bazy MySQL w systemie macOS Instalacja bazy MySQL w systemie Windows Instalacja bazy MySQL w systemie Linux Utworzenie schematu bazy danych Dodanie nowych zale(cid:285)no(cid:258)ci Implementacja operacji CRUD Dodawanie danych Modyfikacja danych Odczytywanie danych Usuwanie danych Wi(cid:218)cej o modyfikowaniu danych Obiekty DTO Tworzenie zapyta(cid:241) SQL Nazwane zapytania SQL Podsumowanie Rozdzia(cid:239) 5. Zabezpieczanie aplikacji za pomoc(cid:200) Spring Security Wprowadzenie do platformy Spring Security Definiowanie ról u(cid:285)ytkowników Implementacja klas reprezentuj(cid:200)cych role Definiowanie obiektów DTO dla u(cid:285)ytkowników Uwierzytelnianie i autoryzowanie u(cid:285)ytkowników Co jeszcze oferuje platforma Spring Security? Podsumowanie Rozdzia(cid:239) 6. Platforma Spring Cloud Architektura SOA Architektura mikrous(cid:239)ugowa Mikrous(cid:239)ugi w platformie Spring Cloud Platforma Spring Cloud w praktyce Serwer konfiguracji 4 53 54 55 56 57 58 65 71 73 78 79 79 80 80 80 80 81 83 84 86 88 89 95 95 97 98 98 100 106 108 109 111 111 112 112 119 123 129 130 131 131 132 133 134 135 Poleć książkęKup książkę Wykrywanie serwerów Brama Modyfikacja interfejsu API Zabezpieczanie us(cid:239)ug Spring Cloud Podsumowanie Rozdzia(cid:239) 7. Projekt Reactor Dlaczego nale(cid:285)y stosowa(cid:202) projekt Reactor? Co to jest projekt Reactor? Korzystanie z projektu Reactor Podsumowanie Rozdzia(cid:239) 8. Praktyki programistyczne Krytyczna ocena praktyk programistycznych Wstrzykiwane zale(cid:285)no(cid:258)ci Otwarto(cid:258)(cid:202) klas Mutowalne zmienne Wielow(cid:200)tkowo(cid:258)(cid:202) Poprawno(cid:258)(cid:202) danych Zakres testów Konfiguracja XML Dobre praktyki w tworzeniu kodu Nie wstrzykuj zbyt wiele Ograniczaj widoczno(cid:258)(cid:202) Problem wielow(cid:200)tkowo(cid:258)ci Weryfikacja danych Podsumowanie Rozdzia(cid:239) 9. Testy Dlaczego testy s(cid:200) tak wa(cid:285)ne w programowaniu? Co trzeba testowa(cid:202)? Najcz(cid:218)(cid:258)ciej stosowane praktyki i metodyki testowania Przygotowanie projektu Pierwszy test w j(cid:218)zyku Kotlin Uruchamianie testów w (cid:258)rodowisku IntelliJ IDEA Testowanie aplikacji Spring REST Uruchamianie zestawu testów Podsumowanie Rozdzia(cid:239) 10. Wdra(cid:285)anie aplikacji Co b(cid:218)dziemy wdra(cid:285)a(cid:202)? Opcje wdro(cid:285)eniowe Wdro(cid:285)enie aplikacji na serwerze Tomcat Wdro(cid:285)enie aplikacji na serwerze Java EE Wdro(cid:285)enie aplikacji w chmurze AWS Podsumowanie Skorowidz Spis tre(cid:286)ci 137 140 143 148 158 159 159 160 160 168 171 171 171 172 172 172 173 173 173 173 173 173 174 174 175 177 177 178 178 179 183 189 191 198 199 201 201 208 208 210 214 233 349 5 Poleć książkęKup książkę Spis tre(cid:286)ci 6 Poleć książkęKup książkę 2 Pierwsze kroki z platform(cid:200) Spring W poprzednim rozdziale skonfigurowa(cid:239)e(cid:258) (cid:258)rodowisko programistyczne. Teraz jeste(cid:258) gotów do utworzenia swojego pierwszego projektu w j(cid:218)zyku Kotlin opartego na platformie Spring. Zanim to jednak zrobisz, musisz pozna(cid:202) podstawy tej platformy i dowiedzie(cid:202) si(cid:218), co mo(cid:285)na za jej pomoc(cid:200) uzyska(cid:202). Wtedy b(cid:218)dziesz móg(cid:239) wystartowa(cid:202) z projektem. Przygotuj si(cid:218)! W tym rozdziale opisane s(cid:200) nast(cid:218)puj(cid:200)ce zagadnienia: (cid:81) czym jest platforma Spring, (cid:81) najwa(cid:285)niejsze funkcjonalno(cid:258)ci platformy Spring, (cid:81) obs(cid:239)uga j(cid:218)zyka Kotlin w platformie Spring, (cid:81) generowanie projektów, (cid:81) tworzenie projektu w (cid:258)rodowisku IntelliJ IDEA. Czym jest platforma Spring? Spring jest platform(cid:200) programistyczn(cid:200) opracowan(cid:200) przez firm(cid:218) Pivotal. Platforma oferuje funkcjonalno(cid:258)ci do tworzenia interfejsu u(cid:285)ytkownika i modeli konfiguracyjnych nowoczesnych aplikacji. Dzi(cid:218)ki tym funkcjonalno(cid:258)ciom programi(cid:258)ci mog(cid:200) skupi(cid:202) si(cid:218) na implementowaniu algorytmu aplikacji. Dzisiaj niemal wszystkie nowoczesne aplikacje tworzy si(cid:218) przy u(cid:285)yciu platformy Spring. Jest to jedna z najcz(cid:218)(cid:258)ciej stosowanych i najpopularniejszych platform programistycznych. Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych Jakie funkcjonalno(cid:258)ci oferuje platforma Spring? Platforma Spring jest wyposa(cid:285)ona w mnóstwo nowoczesnych funkcjonalno(cid:258)ci niezb(cid:218)dnych ka(cid:285)demu programi(cid:258)cie. W tej cz(cid:218)(cid:258)ci rozdzia(cid:239)u opisanych zosta(cid:239)o kilka najwa(cid:285)niejszych. Wstrzykiwanie zale(cid:285)no(cid:258)ci Pierwsza funkcjonalno(cid:258)(cid:202), o której nale(cid:285)y wspomnie(cid:202) i która jest wykorzystywana w codziennym programowaniu, to wstrzykiwanie zale(cid:285)no(cid:258)ci (ang. dependency injection). Ka(cid:285)dy dobry pro- gramista stara si(cid:218) tworzy(cid:202) klasy jak najbardziej uniezale(cid:285)nione od siebie. S(cid:200) to tzw. klasy lu(cid:283)no sprz(cid:218)(cid:285)one, czyli „nie(cid:258)wiadome” istnienia innych klas. Wstrzykiwanie zale(cid:285)no(cid:258)ci s(cid:239)u(cid:285)y wi(cid:200)zaniu klas ze sob(cid:200) z zachowaniem niezale(cid:285)no(cid:258)ci. Jak to si(cid:218) dzieje? Wstrzykiwanie zale(cid:285)no(cid:258)ci to technika nowoczesnego programowania polegaj(cid:200)ca na udo- st(cid:218)pnianiu obiektu A obiektowi B. Zale(cid:285)no(cid:258)ci(cid:200) jest obiekt A, natomiast obiekt B wykorzy- stuje wstrzykni(cid:218)t(cid:200) zale(cid:285)no(cid:258)(cid:202). Dobrym przyk(cid:239)adem jest udost(cid:218)pnianie zale(cid:285)no(cid:258)ci w testach jednostkowych. Zale(cid:285)no(cid:258)(cid:202) najcz(cid:218)(cid:258)ciej definiujemy, tworz(cid:200)c instancj(cid:218) zale(cid:285)no(cid:258)ci lub obiekt fabrykuj(cid:200)cy generu- j(cid:200)cy instancj(cid:218). Dzi(cid:218)ki wstrzykiwaniu zale(cid:285)no(cid:258)ci instancja jest przekazywana zewn(cid:218)trznemu klientowi. Sposób wykorzystania instancji to problem zewn(cid:218)trznego kodu, a nie Twojego! Co to jest ów zewn(cid:218)trzny kod? Jest nim na przyk(cid:239)ad: (cid:81) obiekt znajduj(cid:200)cy si(cid:218) wy(cid:285)ej w hierarchii zale(cid:285)no(cid:258)ci, (cid:81) wstrzykiwarka zale(cid:285)no(cid:258)ci (platforma) generuj(cid:200)ca graf zale(cid:285)no(cid:258)ci. Poni(cid:285)ej znajduje si(cid:218) kilka przyk(cid:239)adów wstrzykiwania zale(cid:285)no(cid:258)ci. Wykorzystane s(cid:200) w nich kon- struktor i obiekt fabrykuj(cid:200)cy. W obu przypadkach rzecz si(cid:218) komplikuje, je(cid:285)eli trzeba dok(cid:239)adnie przetestowa(cid:202) kod. Jednak dzi(cid:218)ki platformie Spring jest to bardzo (cid:239)atwe! W tej ksi(cid:200)(cid:285)ce dowiesz si(cid:218), jak to si(cid:218) robi. Wstrzykiwanie zale(cid:285)no(cid:258)ci za pomoc(cid:200) konstruktora wygl(cid:200)da nast(cid:218)puj(cid:200)co: class MyExampleClass(val parameter: Any){ private val dependency: Any init { dependency = parameter // Kod wykorzystuj(cid:261)cy zale(cid:298)no(cid:286)(cid:252). } } Wstrzykiwanie zale(cid:285)no(cid:258)ci za pomoc(cid:200) obiektu fabrykuj(cid:200)cego wygl(cid:200)da nast(cid:218)puj(cid:200)co: class MyExampleClass2 { private val dependency = Factory().create() } class Factory { fun create(): Any { 34 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring // Kod tworz(cid:261)cy instancj(cid:266) zale(cid:298)no(cid:286)ci. return Any() } } Jak wspomnia(cid:239)em, dobrym przyk(cid:239)adem wstrzykiwania zale(cid:285)no(cid:258)ci s(cid:200) testy kodu. Dzi(cid:218)ki zale(cid:285)no- (cid:258)ciom testowanie jest o wiele prostsze! Jaki problem pojawia si(cid:218) w powy(cid:285)szych dwóch przyk(cid:239)a- dach? Za(cid:239)ó(cid:285)my, (cid:285)e chcemy przetestowa(cid:202) klas(cid:218) MyExampleClass2. Potrzebna jest jej imitacja (ang. mock) lub atrapa (ang. stub). Spraw(cid:218) dodatkowo komplikuje to, (cid:285)e nie mamy wp(cid:239)ywu na klas(cid:218) Factory! Prostszym sposobem by(cid:239)oby wstrzykiwanie konstruktora, ale nie rozwi(cid:200)za(cid:239)oby to problemu. Dlaczego? Wzajemne uzale(cid:285)nianie tworzonych obiektów jest w praktyce nie do przyj(cid:218)cia. Tego problemu nie ma w przypadku wstrzykiwania zale(cid:285)no(cid:258)ci za pomoc(cid:200) setterów. Wkrótce przekonasz si(cid:218) jednak, (cid:285)e takie podej(cid:258)cie ma wi(cid:218)cej wad ni(cid:285) zalet. Odwrócenie sterowania Najwa(cid:285)niejsz(cid:200) technik(cid:200) lu(cid:283)nego sprz(cid:218)gania klas jest odwrócenie sterowania (ang. Inversion of Control — IoC). Polega ono na udost(cid:218)pnianiu zale(cid:285)no(cid:258)ci przez obiekt podrz(cid:218)dny zamiast two- rzenia lub szukania obiektów zale(cid:285)nych. Sprz(cid:218)ganie obiektów nast(cid:218)puje w trakcie dzia(cid:239)ania kodu. Celem zarówno odwrócenia sterowania, jak i wstrzykiwania zale(cid:285)no(cid:258)ci jest redukowanie liczby zale(cid:285)no(cid:258)ci w kodzie. Przeanalizujmy kilka przyk(cid:239)adów ilustruj(cid:200)cych powy(cid:285)sz(cid:200) technik(cid:218). Wyobra(cid:283) sobie, (cid:285)e tworzysz aplikacj(cid:218) do odtwarzania muzyki i potrzebny jest mechanizm do sterowania g(cid:239)o(cid:258)no(cid:258)ci(cid:200). Pocz(cid:200)t- kowy kod wygl(cid:200)da nast(cid:218)puj(cid:200)co: class VolumeControl class MusicPlayer { val volumeControl = VolumeControl() } Teraz zastosujmy odwrócenie sterowania: abstract class VolumeControlAbstract class MusicPlayerIOC( private val volumeControl: VolumeControlAbstract ) W pierwszym kodzie tworzona jest instancja klasy: val volumeControl = VolumeControl() Zatem klasa MusicPlayer jest bezpo(cid:258)rednio uzale(cid:285)niona od klasy VolumeControl! Jak to wygl(cid:200)da w drugim kodzie? Tworzona jest w nim klasa abstrakcyjna. W sygnaturze konstruktora klasy MusicPlayer zdefiniowana jest klasa zale(cid:285)na VolumeControl. Nie jest jednak tworzona jej instancja. Zale(cid:285)no(cid:258)(cid:202) jest tworzona, a nast(cid:218)pnie przekazywana klasie MusicPlayer w nast(cid:218)puj(cid:200)cy sposób: // Zainicjowanie zale(cid:298)no(cid:286)ci. val vc = VolumeControlImpl() 35 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych // Przekazanie zale(cid:298)no(cid:286)ci. val player = MusicPlayerIOC(vc) W tym przypadku kod kliencki tworz(cid:200)cy instancj(cid:218) klasy MusicPlayer ma kontrol(cid:218) nad implementa- cj(cid:200) klasy VolumeControl. Jak wida(cid:202), zale(cid:285)no(cid:258)(cid:202) jest wstrzykiwana w sygnaturze klasy MusicPlayer! Programowanie aspektowe Platforma Spring oferuje jeszcze jedn(cid:200) wa(cid:285)n(cid:200) funkcjonalno(cid:258)(cid:202): programowanie aspektowe (ang. aspect oriented programming — AOP). Programowanie aspektowe stosuje si(cid:218) do tworzenia obiektowych interfejsów API. Jest to nowy styl tworzenia struktury kodu. W programowaniu obiektowym podstawow(cid:200) jednostk(cid:200) jest klasa. Natomiast w programowaniu AOP jest to aspekt. Wstrzykiwanie zale(cid:285)no(cid:258)ci ma na celu rozprz(cid:218)ganie obiektów tworz(cid:200)cych aplikacj(cid:218). Natomiast programowanie AOP pozwala rozdziela(cid:202) zagadnienia przekrojowe (ang. cross-cutting concerns) od obiektów, których te zagadnienia dotycz(cid:200). Zagadnienie przekrojowe jest to funkcjonalno(cid:258)(cid:202) wp(cid:239)ywaj(cid:200)ca na wiele obszarów aplikacji. Dobrym przyk(cid:239)adem jest zabezpieczanie kodu. Dlaczego? Poniewa(cid:285) w wielu metodach mo(cid:285)e by(cid:202) wymagane zaimplementowane regu(cid:239) bezpiecze(cid:241)stwa. W programowaniu aspektowym ka(cid:285)dy modu(cid:239) implementuje aspekty. W nast(cid:218)pnych rozdzia(cid:239)ach zastosujesz ten styl programowania w praktyce. Kontener Wa(cid:285)n(cid:200) cech(cid:200) platformy Spring jest mo(cid:285)liwo(cid:258)(cid:202) tworzenia obiektów aplikacyjnych i zarz(cid:200)dzania ich cyklem (cid:285)ycia oraz konfiguracj(cid:200). Do tego celu s(cid:239)u(cid:285)y interfejs org.springframework.context. (cid:180)ApplicationContext, który jest odpowiedzialny za tworzenie instancji klas, ich konfiguro- wanie i kompletowanie. Platforma Spring oferuje kilka gotowych implementacji interfejsu ApplicationContext. Wzorzec MVC Platforma Spring pozwala tworzy(cid:202) aplikacje zgodnie ze wzorcem MVC (ang. Model-View- -Controller — model-widok-kontroler). Co to oznacza? We wzorcu MVC równie(cid:285) stosuje si(cid:218) interfejsy i ró(cid:285)ne technologie tworzenia widoków. Wzorzec ten wykorzystuje si(cid:218) do pisania interfejsów u(cid:285)ytkownika. Dzi(cid:218)ki niemu powsta(cid:239)y kod jest prosty i czytelny. Zgodnie z tym wzorcem kod aplikacji dzieli si(cid:218) na trzy cz(cid:218)(cid:258)ci: model, widok i kontroler. Model Model to centralna cz(cid:218)(cid:258)(cid:202) aplikacji odpowiedzialna za jej dzia(cid:239)anie. Jest niezale(cid:285)ny od widoku i ma bezpo(cid:258)redni wp(cid:239)yw na dane, algorytm i stosowane zasady. Widok Widok s(cid:239)u(cid:285)y do prezentowania informacji przetwarzanych przez aplikacj(cid:218). Przyk(cid:239)adem widoku jest strona HTML tworzona po wys(cid:239)aniu zapytania do interfejsu API. Aplikacja nie musi mie(cid:202) jednego widoku. We wzorcu MVC mo(cid:285)na prezentowa(cid:202) t(cid:218) sam(cid:200) informacj(cid:218) w wielu widokach. 36 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring Kontroler Kontroler odbiera dane wej(cid:258)ciowe i przetwarza je na polecenia dla modelu lub widoku. Jak wida(cid:202), jest to kolejny przyk(cid:239)ad rozprz(cid:218)gania klas w platformie Spring! Zarz(cid:200)dzanie transakcjami Platforma Spring oferuje ogóln(cid:200) warstw(cid:218) abstrakcyjn(cid:200) do zarz(cid:200)dzania transakcjami. Zarz(cid:200)dzanie to obejmuje nie tylko (cid:258)rodowisko J2EE. W odró(cid:285)nieniu od mechanizmu EJB CMT, powi(cid:200)za- nego z interfejsem JTA, deklaratywne zarz(cid:200)dzanie transakcjami w platformie Spring mo(cid:285)na stosowa(cid:202) w ka(cid:285)dym (cid:258)rodowisku. Zarz(cid:200)dza(cid:202) mo(cid:285)na transakcjami JTA, jak równie(cid:285) transakcjami lokalnymi, je(cid:285)eli zajdzie taka potrzeba, przy u(cid:285)yciu nast(cid:218)puj(cid:200)cych technik: (cid:81) JDBC, (cid:81) JPA, (cid:81) Hibernate, (cid:81) JDO. Wystarczy jedynie odpowiednio zmieni(cid:202) pliki konfiguracyjne! Inne funkcjonalno(cid:258)ci Wyj(cid:200)tki w warstwie abstrakcji JDBC w platformie Spring tworz(cid:200) hierarchiczn(cid:200) struktur(cid:218), dzi(cid:218)ki której kodowanie obs(cid:239)ugi b(cid:239)(cid:218)dów jest (cid:239)atwiejsze. Platforma Spring umo(cid:285)liwia tworzenie komercyjnych aplikacji za pomoc(cid:200) obiektów POJO (ang. Plain Old Java Object — zwyk(cid:239)y, stary obiekt Java). Co to oznacza? (cid:191)e nie jest potrzebny kontener EJB, na przyk(cid:239)ad serwer aplikacji. Programista mo(cid:285)e u(cid:285)y(cid:202) nawet podstawowego kon- tenera serwletów, na przyk(cid:239)ad Tomcata lub innego komercyjnego produktu. Jednym z mo(cid:285)liwych rozwi(cid:200)za(cid:241) jest wykorzystanie (cid:258)rodowiska AWS. Warto zaznaczy(cid:202), (cid:285)e platforma Spring ma modu(cid:239)ow(cid:200) budow(cid:218). Oznacza to, (cid:285)e w aplikacji mo(cid:285)na wykorzystywa(cid:202) jedynie niezb(cid:218)dne pakiety, a inne pomin(cid:200)(cid:202). Razem z platform(cid:200) mo(cid:285)na stosowa(cid:202) inne popularne technologie, na przyk(cid:239)ad platform(cid:218) ORM, platformy loguj(cid:200)ce, (cid:258)rodowisko JEE, czasomierze Quartz i JDK. Jak wygl(cid:200)da testowanie aplikacji? Dzi(cid:218)ki platformie Spring testy przeprowadza si(cid:218) szybko i (cid:239)a- two. Kod uzale(cid:285)niony od otaczaj(cid:200)cego go (cid:258)rodowiska przenosi si(cid:218) do platformy. Za pomoc(cid:200) obiektów POJO mo(cid:285)na (cid:239)atwo wstrzykiwa(cid:202) zale(cid:285)no(cid:258)ci i dane potrzebne do wykonania testów. Platforma Spring oferuje doskona(cid:239)y interfejs API do przekszta(cid:239)cania wyj(cid:200)tków charakterystycz- nych dla ró(cid:285)nych technologii na spójne wyj(cid:200)tki niekontrolowane. Kontenery IoC w platformie Spring s(cid:200) bardzo ma(cid:239)e. Pod tym wzgl(cid:218)dem znacznie ró(cid:285)ni(cid:200) si(cid:218) od kontenerów EJB i w mniejszym stopniu obci(cid:200)(cid:285)aj(cid:200) pami(cid:218)(cid:202) i procesor komputera. 37 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych To s(cid:200) najpopularniejsze funkcjonalno(cid:258)ci platformy Spring. Wykorzystasz je podczas pracy z t(cid:200) ksi(cid:200)(cid:285)k(cid:200). Spotkasz si(cid:218) równie(cid:285) z innymi funkcjonalno(cid:258)ciami, które nie zosta(cid:239)y tu wymienione. Gdy dog(cid:239)(cid:218)bnie poznasz platform(cid:218) Spring, na pewno przez d(cid:239)ugi, bardzo d(cid:239)ugi czas, a by(cid:202) mo(cid:285)e ju(cid:285) nigdy, nie skorzystasz z innych platform! Jak jest obs(cid:239)ugiwany j(cid:218)zyk Kotlin? Pocz(cid:200)wszy od wersji 5 platforma Spring oficjalnie obs(cid:239)uguje j(cid:218)zyk Kotlin. To (cid:258)wietna wiadomo(cid:258)(cid:202)! Jedn(cid:200) z najwi(cid:218)kszych zalet Kotlina jest jego doskona(cid:239)a kompatybilno(cid:258)(cid:202) z bibliotekami j(cid:218)zyka Java. Ale to nie wszystko! Tworz(cid:200)c aplikacje przy u(cid:285)yciu platformy Spring, mo(cid:285)na w pe(cid:239)ni ko- rzysta(cid:202) z zalet sk(cid:239)adni j(cid:218)zyka Kotlin. Dzi(cid:218)ki temu osi(cid:200)ga si(cid:218) zupe(cid:239)nie inny poziom wydajno(cid:258)ci i elastyczno(cid:258)ci kodu! Dlatego pocz(cid:200)wszy od wersji 5 platformy Spring j(cid:218)zyk Kotlin jest oficjalnie obs(cid:239)ugiwany. Podstawow(cid:200) funkcjonalno(cid:258)ci(cid:200) j(cid:218)zyka Kotlin, umo(cid:285)liwiaj(cid:200)c(cid:200) stosowanie go razem z platform(cid:200) Spring, s(cid:200) rozszerzenia. Dzi(cid:218)ki nim mo(cid:285)na rozbudowywa(cid:202) istniej(cid:200)ce klasy platformy, co wpro- wadza najnowsz(cid:200) wersj(cid:218) platformy w zupe(cid:239)nie nowy wymiar! Nale(cid:285)y podkre(cid:258)li(cid:202), (cid:285)e rozszerzenia w j(cid:218)zyku Kotlin s(cid:200) rozwi(cid:200)zywane statycznie. Oznacza to, (cid:285)e trzeba je importowa(cid:202). Poni(cid:285)ej wymienione s(cid:200) najwa(cid:285)niejsze korzy(cid:258)ci p(cid:239)yn(cid:200)ce ze stosowania platformy Spring i j(cid:218)zyka Kotlin: (cid:81) Platforma Spring mo(cid:285)e wykorzystywa(cid:202) charakterystyczne dla j(cid:218)zyka Kotlin zabezpieczenia przed zerowymi wska(cid:283)nikami. (cid:81) Do kierowania zapyta(cid:241) mo(cid:285)na wykorzystywa(cid:202) j(cid:218)zyk DSL. (cid:81) Dzi(cid:218)ki urzeczowionym parametrom typowanym mo(cid:285)na unikn(cid:200)(cid:202) problemów wynikaj(cid:200)cych z wymazywania typów w maszynie JVM. (cid:81) Narz(cid:218)dzie Gradle mo(cid:285)na konfigurowa(cid:202) w j(cid:218)zyku Kotlin. (cid:81) Mo(cid:285)na stosowa(cid:202) szablony skryptów w j(cid:218)zyku Kotlin. (cid:81) Stosuj(cid:200)c platform(cid:218) Spring z j(cid:218)zykiem Kotlin, mo(cid:285)na tworzy(cid:202) krótszy, prostszy, bardziej efektywny i czytelny kod. J(cid:218)zyk Kotlin to przysz(cid:239)o(cid:258)ciowe rozwi(cid:200)zanie dla wszystkich programistów korzystaj(cid:200)cych z plat- formy Spring! Tworzenie projektu Spring Przyszed(cid:239) czas na utworzenie i uruchomienie pierwszego projektu opartego na platformie Spring. Twoim podstawowym j(cid:218)zykiem programowania b(cid:218)dzie oczywi(cid:258)cie Kotlin. Do zaini- cjowania projektu wykorzystasz narz(cid:218)dzie Spring Initializr. 38 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring Czym jest narz(cid:218)dzie Spring Initializr? W skrócie: Spring Initializr jest internetowym generatorem projektów opartych na platformie Spring. Narz(cid:218)dzie to jest dost(cid:218)pne pod adresem https://start.spring.io. Poniewa(cid:285) jest to otwarty projekt, jego kod znajduje si(cid:218) w repozytorium GitHub pod adresem https://github.com/ spring-io/initializr. Spring Initializr to narz(cid:218)dzie udost(cid:218)pniaj(cid:200)ce interfejs API do szybkiego generowania projektów opartych na platformie Spring. Mo(cid:285)esz u(cid:285)y(cid:202) jego domy(cid:258)lnej instancji o podanym wy(cid:285)ej adresie lub sklonowa(cid:202) jego repozytorium w serwisie GitHub i utworzy(cid:202) w(cid:239)asn(cid:200) instancj(cid:218). Narz(cid:218)dzie Spring Initializr ma kilka opcji konfiguracyjnych, za pomoc(cid:200) których definiuje si(cid:218) ró(cid:285)ne aspekty tworzonego projektu, mi(cid:218)dzy innymi: (cid:81) list(cid:218) zale(cid:285)no(cid:258)ci, (cid:81) wersj(cid:218) j(cid:218)zyka Java, (cid:81) wersj(cid:218) j(cid:218)zyka Kotlin, (cid:81) wersj(cid:218) platformy Spring Boot. Utworzenie projektu Otwórz stron(cid:218) narz(cid:218)dzia Spring Initializr: https://start.spring.io. Pojawi si(cid:218) kreator projektów, jak na poni(cid:285)szym rysunku: 39 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych Wybierz nast(cid:218)puj(cid:200)ce ustawienia projektu: (cid:81) Wybierz Generate a Gradle Project with Kotlin and Spring Boot 2.0.6 (wygeneruj projekt Gradle z j(cid:218)zykiem Kotlin i platform(cid:200) Spring Boot 2.0.6). (cid:81) W polu Group wpisz com.journaler. (cid:81) W polu Artifact wpisz api. Poni(cid:285)ej przedstawiony jest widok ustawie(cid:241): Pierwsza konfiguracja b(cid:218)dzie prosta, ale pó(cid:283)niej w miar(cid:218) swoich post(cid:218)pów b(cid:218)dziesz j(cid:200) rozszerza(cid:239) o dodatkowe zale(cid:285)no(cid:258)ci. Kliknij przycisk Generate Project (wygeneruj projekt). Pojawi si(cid:218) okno, jak na poni(cid:285)szym rysunku, z pytaniem o folder, w którym ma by(cid:202) zapisany plik z projektem: 40 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring Zapisz plik api.zip w preferowanym folderze, a nast(cid:218)pnie rozpakuj go. Poni(cid:285)szy rysunek przed- stawia zawarto(cid:258)(cid:202) projektu: Jest to standardowy projekt aplikacji w j(cid:218)zyku Kotlin. Przyjrzyjmy si(cid:218) dok(cid:239)adniej jego najwa(cid:285)- niejszym cz(cid:218)(cid:258)ciom. Otwórz plik konfiguracyjny build.gradle. Jego zawarto(cid:258)(cid:202) powinna by(cid:202) po- dobna do tej ni(cid:285)ej przedstawionej: buildscript { ext { kotlinVersion = 1.2.51 springBootVersion = 2.0.6.RELEASE } repositories { mavenCentral() } dependencies { classpath( org.springframework.boot:spring-boot-gradle-plugin:$ (cid:180){springBootVersion} ) classpath( org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion} ) classpath( org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion} ) } } apply plugin: kotlin apply plugin: kotlin-spring apply plugin: eclipse apply plugin: org.springframework.boot apply plugin: io.spring.dependency-management 41 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych group = com.journaler version = 0.0.1-SNAPSHOT sourceCompatibility = 1.8 compileKotlin { kotlinOptions { freeCompilerArgs = [ -Xjsr305=strict ] jvmTarget = 1.8 } } compileTestKotlin { kotlinOptions { freeCompilerArgs = [ -Xjsr305=strict ] jvmTarget = 1.8 } } repositories { mavenCentral() } dependencies { implementation( org.springframework.boot:spring-boot-starter ) implementation( org.jetbrains.kotlin:kotlin-stdlib-jdk8 ) implementation( org.jetbrains.kotlin:kotlin-reflect ) testImplementation( org.springframework.boot:spring-boot-starter-test ) } Kolejne sekcje skryptu, pocz(cid:200)wszy od samego pocz(cid:200)tku, zawieraj(cid:200) nast(cid:218)puj(cid:200)ce ustawienia: (cid:81) oznaczenia wersji j(cid:218)zyka Kotlin i platformy Spring Boot, (cid:81) nazwy i (cid:258)cie(cid:285)ki repozytoriów niezb(cid:218)dnych do skompilowania kodu, (cid:81) wtyczki niezb(cid:218)dne do skompilowania i uruchomienia kodu, (cid:81) nazw(cid:218) grupy projektu (com.journaler), (cid:81) oznaczenie wersji projektu (0.0.1-SNAPSHOT), (cid:81) wymóg kompatybilno(cid:258)ci z wersj(cid:200) j(cid:218)zyka Java 1.8, (cid:81) nazwy wykorzystywanych repozytoriów, (cid:81) zale(cid:285)no(cid:258)ci wykorzystywane przez j(cid:218)zyk Kotlin i platform(cid:218) Spring. Inn(cid:200) wa(cid:285)n(cid:200) kwesti(cid:200) jest konfiguracja narz(cid:218)dzia Git. Otwórz plik .gitignore, zawieraj(cid:200)cy ustawie- nia wy(cid:239)(cid:200)czaj(cid:200)ce niepotrzebn(cid:200) kontrol(cid:218) wersji w przypadku niektórych plików, i przyjrzyj si(cid:218) jego zawarto(cid:258)ci: .gradle /build/ !gradle/wrapper/gradle-wrapper.jar ### STS ### .apt_generated .classpath .factorypath 42 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr /out/ ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ Otwórz plik application.propeties, który znajduje si(cid:218) w folderze src\main.resources. Plik ten zawiera ustawienia aplikacji specyficzne dla wykorzystywanego (cid:258)rodowiska. W tej chwili jest on pusty. I wreszcie: przejrzyj kod! Projekt zosta(cid:239) utworzony w j(cid:218)zyku Kotlin, wi(cid:218)c przejd(cid:283) do folderu src\main\kotlin\com\journaler\api i otwórz plik ApiApplication.kt: package com.journaler.api import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @SpringBootApplication class ApiApplication fun main(args: Array String ) { runApplication ApiApplication (*args) } Kod nie jest d(cid:239)ugi, wi(cid:218)c (cid:239)atwo go zrozumie(cid:202). Zdefiniowana jest w nim klasa aplikacyjna ApiApplication opatrzona adnotacj(cid:200) @SpringBootApplication. Metoda main() uruchamia aplika- cj(cid:218) wykorzystuj(cid:200)c(cid:200) platform(cid:218) Spring. To wszystko! Zanim skompilujesz i uruchomisz kod, musisz sprawdzi(cid:202) jedn(cid:200) rzecz. Przejd(cid:283) do folderu src\test\kotlin\com\journaler\api i otwórz plik ApiApplicationTest.kt, który zawiera nast(cid:218)- puj(cid:200)cy test: package com.journaler.api import org.junit.Test import org.junit.runner.RunWith import org.springframework.boot.test.context.SpringBootTest import org.springframework.test.context.junit4.SpringRunner 43 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych @RunWith(SpringRunner::class) @SpringBootTest class ApiApplicationTests { @Test fun contextLoads() { } } Powy(cid:285)szy test nie robi nic. Wi(cid:218)cej informacji o testowaniu aplikacji opartych na platformie Spring znajdziesz w nast(cid:218)pnych rozdzia(cid:239)ach ksi(cid:200)(cid:285)ki. Na razie ogólnie zapoznaj si(cid:218) z kodem testu. Teraz skompiluj i uruchom aplikacj(cid:218). W tym celu otwórz wiersz polece(cid:241), przejd(cid:283) do g(cid:239)ównego folderu projektu i wpisz nast(cid:218)puj(cid:200)ce polecenie: C:\Users\Administrator\Documents\Projekty\api\api gradlew clean Narz(cid:218)dzie Gradle pobierze wymagane zale(cid:285)no(cid:258)ci: Powy(cid:285)szy komunikat oznacza, (cid:285)e zale(cid:285)no(cid:258)ci zosta(cid:239)y pomy(cid:258)lnie pobrane. Aby skompilowa(cid:202) kod, wpisz nast(cid:218)puj(cid:200)ce polecenie: C:\Users\Administrator\Documents\Projekty\api\api gradlew build Je(cid:285)eli kompilacja zako(cid:241)czy si(cid:218) pomy(cid:258)lnie, pojawi si(cid:218) taki komunikat: Aby uruchomi(cid:202) aplikacj(cid:218), przejd(cid:283) do folderu build/libs i wpisz polecenie: C:\Users\Administrator\Documents\Projekty\api\api\build\ (cid:180)libs java -jar ./api-0.0.1-SNAPSHOT 44 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring Aplikacja wy(cid:258)wietli nast(cid:218)puj(cid:200)c(cid:200) tre(cid:258)(cid:202): Na razie nie b(cid:218)dziemy szczegó(cid:239)owo analizowa(cid:202) wy(cid:258)wietlanych komunikatów, poniewa(cid:285) musisz najpierw przej(cid:258)(cid:202) d(cid:239)ug(cid:200) drog(cid:218) do wys(cid:239)ania pierwszego zapytania. Ostatnim zadaniem b(cid:218)dzie utworzenie projektu od podstaw w (cid:258)rodowisku IntelliJ IDEA. Wcze(cid:258)niej jednak zaimportuj pobrany projekt. W tym celu otwórz (cid:258)rodowisko i kliknij opcj(cid:218) Import Project. Nast(cid:218)pnie wska(cid:285) folder z rozpakowanymi plikami i kliknij przycisk OK. Pojawi si(cid:218) okno kreatora projektu. Zaznacz opcj(cid:218) Create project from existing sources (utwórz projekt na podstawie istniej(cid:200)cych (cid:283)róde(cid:239)), jak na poni(cid:285)szym rysunku: 45 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych Kliknij przycisk Next. Pojawi si(cid:218) kolejne okno z polem Project name zawieraj(cid:200)cym nazw(cid:218) projektu: Je(cid:285)eli nazwy projektu i folderu Ci odpowiadaj(cid:200), kliknij przycisk Next. W nast(cid:218)pnym oknie kliknij przycisk Mark All (zaznacz wszystko): W ostatnim oknie kliknij przycisk Finish: 46 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring Nast(cid:218)pnie kliknij polecenie menu File/New/Module from Existing Sources (plik/nowy/modu(cid:239) z istniej(cid:200)cych (cid:283)róde(cid:239)) i zaimportuj modu(cid:239) Gradle. W oknie z ustawieniami importu kliknij przycisk OK: Import modu(cid:239)u zajmie chwil(cid:218). Rysunek na nast(cid:218)pnej stronie przedstawia struktur(cid:218) projektu aplika- cji gotowej do uruchomienia: 47 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych Je(cid:285)eli (cid:258)rodowisko programistyczne nie rozpozna automatycznie konfiguracji projektu, rozwi(cid:241) sekcj(cid:218) api/src/main/kotlin/com.journaler.api, kliknij prawym przyciskiem myszy plik ApiApplication.kt i wybierz polecenie Run com.journaler.api.ApiApplication.kt . Aplikacja powinna wy(cid:258)wietli(cid:202) takie same komunikaty jak plik JAR, który uruchomi(cid:239)e(cid:258) wcze(cid:258)niej. W pliku .gitignore wpisz poni(cid:285)sze wiersze (których narz(cid:218)dzie Spring Initializr nie utworzy(cid:239)o) wy(cid:239)(cid:200)czaj(cid:200)ce kontrol(cid:218) wersji w przypadku plików narz(cid:218)dzia Gradle: gradlew gradlew.bat gradle/* Tworzenie projektu w (cid:258)rodowisku IntelliJ IDEA Na zako(cid:241)czenie rozdzia(cid:239)u dowiesz si(cid:218), jak inicjuje si(cid:218) projekty w (cid:258)rodowisku IntelliJ IDEA. Efekt b(cid:218)dzie taki sam jak ten uzyskany za pomoc(cid:200) narz(cid:218)dzia Spring Initializr. Uruchom (cid:258)rodowi- sko IntelliJ IDEA i kliknij opcj(cid:218) Create New Project (utwórz nowy projekt). Pojawi si(cid:218) okno New Project (zobacz pierwszy rysunek na nast(cid:218)pnej stronie). Kliknij sekcj(cid:218) Spring i zaznacz opcje jak na drugim rysunku na nast(cid:218)pnej stronie. 48 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring 49 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych Ponadto zaznacz opcj(cid:218) Kotlin/JVM, jak ni(cid:285)ej: Kliknij przycisk Next i doko(cid:241)cz tworzenie projektu zgodnie ze wskazówkami kreatora. Nast(cid:218)pnie kliknij polecenie menu File/Settings. W oknie, które si(cid:218) pojawi, rozwi(cid:241) po lewej stronie sekcj(cid:218) Build, Execution, Deployment/Compiler/Annotation Processing (kompilacja, uruchomienie, wdro(cid:285)enie/kompilator/przetwarzanie adnotacji) i zaznacz opcj(cid:218) Enable annotation processing (w(cid:239)(cid:200)cz przetwarzanie adnotacji) — zobacz rysunek na nast(cid:218)pnej stronie. Jak wida(cid:202) na rysunku na nast(cid:218)pnej stronie, w (cid:258)rodowisku brak jest ustawie(cid:241) platformy Spring. Dlatego b(cid:218)dziesz tworzy(cid:239) projekty przy u(cid:285)yciu narz(cid:218)dzia Spring Initializr — zawiera ono wszystkie niezb(cid:218)dne opcje. Podsumowanie Ten rozdzia(cid:239) by(cid:239) wprowadzeniem do platformy Spring i jej funkcjonalno(cid:258)ci. Utworzy(cid:239)e(cid:258) swój pierwszy projekt, pomy(cid:258)lnie go skompilowa(cid:239)e(cid:258) i uruchomi(cid:239)e(cid:258). W nast(cid:218)pnym rozdziale b(cid:218)dziesz kontynuowa(cid:239) rozpocz(cid:218)t(cid:200) podró(cid:285) i zajmiesz si(cid:218) bardziej konkretnymi zadaniami: utworzysz swoj(cid:200) pierwsz(cid:200) us(cid:239)ug(cid:218) REST, która b(cid:218)dzie si(cid:218) sk(cid:239)ada(cid:202) z kontrolera, klasy danych i komponentów us(cid:239)ugowych. 50 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Pierwsze kroki z platform(cid:261) Spring 51 Poleć książkęKup książkę J(cid:266)zyk Kotlin na platformie Spring. Programowanie aplikacji internetowych 52 Poleć książkęKup książkę Skorowidz A D adnotacja @Component, 73 @Controller, 74 @Repository, 74 @RunWith, 191 @Service, 74 AOP, aspect oriented programming, 36 API, application programming interface, 14 modyfikacja interfejsu, 143 architektura mikrous(cid:239)ugowa, 132 SOA, 131 autoryzowanie u(cid:285)ytkowników, 123 AWS, Amazon Web Services, 214 B baza danych MySQL, 79 bezpiecze(cid:241)stwo, 111 biblioteka Actuator, 71 Spring Data, 80 brama, 134, 140 C chmura AWS, 214 Created on, 15 CRUD, create, read, update, delete, 14, 89 DAO, Data Access Object, 74 definiowanie obiektów DTO, 119 dobre praktyki, 173 dodanie danych, 95 komponentu Service, 73 zale(cid:285)no(cid:258)ci, 88 DTO, data transfer objects, 100, 119 dzielenie kodu, 14 Email, 15 Enabled, 15 First, 15 funkcjonalno(cid:258)ci, 34 E F I ID, 15 identyfikator UUID, 15 implementacja klas reprezentuj(cid:200)cych role, 112 operacji CRUD, 89 informacje o ostatnich zapytaniach HTTP, 71 o stanie aplikacji, 71 o (cid:258)rodowisku, 71 Poleć książkęKup książkę Skorowidz instalacja bazy MySQL, 80–84 narz(cid:218)dzia Git, 17 pakietu JDK, 19 platformy Spring 5, 24 pliku TAR, 85 programu Postman, 29 (cid:258)rodowiska programistycznego, 21 IntelliJ IDEA, 21 tworzenie projektu, 48 uruchamianie testów, 189 interfejs API, 14, 143 REST API, 160 Spring Data JPA, 79, 80 UserDetails, 113 IoC, Inversion of Control, 35 J jednostki, 15 j(cid:218)zyk Kotlin, 38 JPA, Java Persistence API, 79 K klasa kod danych, 57 kontrolera, 55 implementuj(cid:200)cy operacje, 78 obs(cid:239)uguj(cid:200)cy zapytania, 78 kompilacja kodu (cid:283)ród(cid:239)owego, 18 komponent Service, 73 konfiguracja narz(cid:218)dzia Gradle, 28 narz(cid:218)dzia Maven, 28 XML, 173 kontener, 36 kontroler, 37 Last name, 15 Location, 15 L M Message, 15 metoda getAuthorities(), 113 getPassword(), 113 236 getUsername(), 113 isAccountNonExpired(), 114 isAccountNonLocked(), 114 isCredentialsNonExpired(), 113 isEnabled(), 113 metodyki testowania, 178 mikrous(cid:239)ugi, 132 model, 36 modu(cid:239)y Spring Data, 80 modyfikacja danych, 95 interfejsu API, 143 mutowalne zmienne, 172 MVC, Model-View- -Controller, 36 MySQL, 80 instalacja bazy, 81–84 narz(cid:218)dzie Git, 17, 18 Gradle, 28 Maven, 28 Spring Initializr, 39 Note, 15 N O obiekty DTO, 100, 119 odczytywanie danych, 97 odwrócenie sterowania, 35 opcje wdro(cid:285)eniowe, 208 operacje CRUD, 14, 89 P pakiet JDK, 19 Password, 15 pierwsza us(cid:239)uga, 53 planowanie pracy, 16 platforma Spring, 33 Spring 5, 24 Spring Cloud, 131 Spring Security, 111 pliki, 180 POJO, Plain Old Java Object, 37 poprawno(cid:258)(cid:202) danych, 173 praktyki programistyczne, 171 problem wielow(cid:200)tkowo(cid:258)ci, 174 Poleć książkęKup książkę program Postman, 29 programowanie aspektowe, 36 projekt Reactor, 159 R Reactor, 159 komponenty, 160 stosowanie, 159 repozytorium Git, 30 role u(cid:285)ytkowników, 112 Roles, 15 S schemat bazy danych, 86 serwer Java EE, 210 konfiguracji, 134, 135 Tomcat, 208 wykrywania us(cid:239)ug, 134 SOA, service-oriented architecture, 131 Spring, 33 Cloud, 131 mikrous(cid:239)ugi, 133 zabezpieczanie us(cid:239)ug, 148 Initializr, 39 Security, 111, 129 (cid:165) (cid:258)rodowisko programistyczne IntelliJ IDEA, 21 robocze, 16 testowanie, 173, 177 aplikacji Spring REST, 191 w IntelliJ IDEA, 189 w j(cid:218)zyku Kotlin, 183 Title, 15 TODO, 15 transakcje, 37 tworzenie klasy danych, 57 klasy kontrolera, 55 projektu, 38 projektu w (cid:258)rodowisku IntelliJ IDEA, 48 repozytorium Git, 30 T XML, 173 X Z Skorowidz schematu bazy danych, 86 zapyta(cid:241) SQL, 106 U Updated on, 15 uruchamianie aplikacji, 65 testów, 189 zestawu testów, 198 User, 15 us(cid:239)ugi Spring Cloud, 148 usuwanie danych, 98 UUID, Universally Unique IDentifier, 15 uwierzytelnianie u(cid:285)ytkowników, 123 W walidator, 174 wdra(cid:285)anie aplikacji, 201 na serwerze Java EE, 210 na serwerze Tomcat, 208 opcje wdro(cid:285)eniowe, 208 w chmurze AWS, 214 weryfikacja danych, 174 widoczno(cid:258)(cid:202), 173 widok, 36 wielow(cid:200)tkowo(cid:258)(cid:202), 172, 174 wska(cid:283)niki, 71 wstrzykiwanie zale(cid:285)no(cid:258)ci, 34, 171 wykrywanie serwerów, 137 wzorzec MVC, 36 zabezpieczanie aplikacji, 111 us(cid:239)ug Spring Cloud, 148 zakres testów, 173 zale(cid:285)no(cid:258)ci, 54, 88 zapytania, 58, 78 nazwane SQL, 106, 108 zarz(cid:200)dzanie transakcjami, 37 zestaw testów, 198 zmienne mutowalne, 172 237 Poleć książkęKup książkę Notatki 238 Poleć książkęKup książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Język Kotlin na platformie Spring. Programowanie aplikacji internetowych
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: