
Istotne. Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Wiesz już na tym etapie o nowszych mechanizmach wprowadzanych w Java, ale my tutaj będziemy skupiać się na Springu, a nie na nowościach w Javie. Nic nie stoi na przeszkodzie, żebyś wykorzystywał/-a wiedzę pozyskaną po warsztacie o nowszych wersjach Java, ale nam zależy na pokazaniu mechanizmów samego Springa, dlatego będziemy starać się stosować proste konstrukcje, a nie mieszać ze Springiem np. sealed classes.
Jeżeli natomiast chodzi o Springa, to struktura warsztatu została przygotowana w ten sposób, że bazowe mechanizmy Springa zostaną przedstawione na podstawie Springa w wersji 5, a niektóre na podstawie Springa w wersji 6. W ramach tego warsztatu pokażemy mechanizmy, które będą towarzyszyć w trakcie Twojej całej przygody ze Springiem, a materiały w tym warsztacie są zaprezentowane na podstawie Springa 6. Jeżeli w nowszych wersjach pojawią się funkcjonalności, które są istotne (naszym zdaniem) na tym poziomie nauki, to zakres warsztatu będzie rozszerzany i będziemy do niego dodawać kolejne materiały. Najpierw chcemy skupić się na podstawach.
Gdy będziesz szukać zależności do Maven/Gradle, znajdziesz również Springa w wersji 6 lub w przyszłości wyższej. Zaznaczam to z tego powodu, że jeżeli my w materiałach będziemy pokazywali Springa 5, to Ty możesz realizować ten sam materiał np. na podstawie Springa 6 i zobaczyć jak te mechanizmy zachowują się w tej wersji. My stale monitorujemy sytuację i jeżeli wychodzą jakieś nowości, które mają znaczenie z perspektywy ścieżki Zajavka, są one dodawane w tej ścieżce. Podsumowując, możesz spokojnie korzystać np. z JDK 17 i Spring 5, możesz również korzystać z najnowszej Javy i najnowszego Springa. Jeżeli w Springu pojawi się coś nowego i istotnego, będzie to dodawane do ścieżki Zajavka ?.
Wiemy już czym jest Spring i jakie są jego bardzo podstawowe możliwości. Wiemy już również na tym etapie, jak możemy testować aplikacje napisane w Spring. Do tego dowiedzieliśmy się już, w jaki sposób można połączyć Spring z komunikacją z bazami danych. Na tym etapie wiesz już, czym jest JPA oraz Hibernate i do czego służą. Wiesz już również, jak można wykorzystać Springa do ułatwienia pracy z JPA. Do tego rozumiesz już, czym są wątki. Przyszła najwyższa pora, żebyśmy zajęli się WEB DEVELOPMENTEM!
Ważne! Ten warsztat będzie o tyle specyficzny, że będziemy w nim wykorzystywali bardzo podstawowe aspekty HTML. Nie będą nam natomiast potrzebne CSS ani JavaScript, gdyż w rozumieniu podziału na frontend i backend (Java), są to technologie frontendowe.
W naszym rozumieniu, każdy backendowiec powinien znać podstawy HTML i będą nam one potrzebne w dalszych omawianych materiałach. Także, jeżeli nie czujesz się komfortowo z podstawami HTML, to jest to dobry moment, żeby je nadrobić ?.
Czemu tak? Chcemy pokazać Ci, że często, gdy będziesz się czegoś uczyć, to okaże się, że najpierw musisz uzupełnić pewne braki w swojej wiedzy. Przypomnij sobie jednocześnie, że staramy się na ścieżce Zajavka symulować to, jak wygląda życie prawdziwego programisty, stąd taka decyzja, że to nie my wyjaśniamy podstawy HTML, tylko musisz się z nimi zapoznać we własnym zakresie. Z naszej strony możemy Ci jednak zapewnić trzy przykładowe źródła, w których możesz przeczytać o podstawach HTML:
w3schools
tutorialspoint
javatpoint
W tym materiale dowiemy się, czym jest wzorzec Model-View-Controller, czyli MVC
I jak poszedł test? Mam nadzieję, że dobrze, bo teraz możemy przejść do części praktycznej. Przechodzimy do projektu, który zostanie napisany przy wykorzystaniu wiedzy, którą pozyskaliśmy w tym warsztacie. Kontynuujemy cykl Car Dealership.
Na dole wpisu znajdziesz dwa pliki. Plik Workshop19-project-1-car-dealership zawiera opis zagadnienia. Drugi plik w19-project-1-car-dealership-sources.zip zawiera kod wypracowanej wcześniej części projektu Car Dealership. W pliku tym znajdziesz kod dotyczący encji bazodanowych oraz repozytoriów. Kod ten ma Ci pomóc wystartować z kolejną częścią projektu Car Dealership.
Poniżej znajdziesz film, w którym Karol wyjaśnia zagadnienie do realizacji. Obejrzyj go, zanim przystąpisz do pisania kodu.
Zachęcamy Cię do rozwiązania zagadnienia samodzielnie, bez patrzenia na gotowe przykłady. Jeżeli natomiast chcesz skorzystać z przygotowanego przez nas przykładowego rozwiązania - będzie ono dostarczone w kolejnym poście. Możesz albo od razu przejść do zapoznania się z gotowym rozwiązaniem (oczywiście najpierw obejrzyj film wprowadzający do tematu), albo możesz zobaczyć, jak takie rozwiązanie wypracowuje Karol. Wtedy też będziesz mógł/mogła posłuchać jego przemyśleń w trakcie rozwiązywania tych zagadnień ?.
W kursie 'Spring WEB MVC' dowiesz się, jak napisać aplikację webową w oparciu o wzorzec Model-View-Controller (MVC) z wykorzystaniem frameworka Spring. Poznasz również technologie JSP oraz Thymeleaf.
Tematyka Warsztatu
Jak działają aplikacje w Internecie
Wzorzec Model-View-Controller: Omówienie wzorca MVC.
Architektura Klient-Server: Zasady działania architektury klient-serwer.
Protokół HTTP: Podstawy protokołu HTTP.
Model żądanie/odpowiedź: Jak działa model żądanie/odpowiedź w aplikacjach webowych.
Spring Web MVC - Wstęp
Wstęp teoretyczny: Podstawy Spring Web MVC.
Mapowanie żądań: Jak mapować żądania w Spring MVC.
Mapowanie parametrów żądań: Techniki mapowania parametrów żądań.
Spring Web MVC - Konfiguracja
Konfiguracja oparta o XML oraz o pliki Java: Różne metody konfiguracji Spring Web MVC.
Spring Web MVC - JSP
JSP - intro: Wprowadzenie do JSP (JavaServer Pages).
Tomcat - intro: Wprowadzenie do serwera aplikacji Tomcat.
Mini aplikacja oparta o JSP: Tworzenie prostej aplikacji webowej z użyciem JSP.
Wielowątkowość a aplikacje WEB: Zagadnienia wielowątkowości w aplikacjach webowych.
Spring Web MVC - Thymeleaf
Thymeleaf - intro: Wprowadzenie do Thymeleaf.
Thymeleaf - konfiguracja: Konfiguracja Thymeleaf w projekcie Spring.
Thymeleaf - kontrolery: Tworzenie kontrolerów obsługujących metody POST, GET, PUT, DELETE.
Thymeleaf - obsługa błędów: Obsługa błędów za pomocą @ControllerAdvice.
Wdrożenie aplikacji i podsumowanie: Proces wdrażania aplikacji na serwer.
Test i Projekt
Test: Zadania sprawdzające zdobytą wiedzę.
Projekt: Praktyczne zastosowanie zdobytej wiedzy w projekcie
Warsztat ten jest 19. warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.