Z okazji uruchomienia naszego nowego kanału, przygotowaliśmy dla Was wyjątkową promocję – dostęp do kursu w specjalnej, obniżonej cenie!
Wspólnie, krok po kroku stworzymy kompletny, praktyczny projekt aplikacji, korzystając z najnowszych technologii – Spring Boot 3, Spring Framework 6, Hibernate 6 oraz Thymeleaf. Projekt, który zbudujesz, będzie idealnym dodatkiem do Twojego portfolio, co pozwoli Ci zaprezentować swoje umiejętności podczas rozmowy kwalifikacyjnej. Otrzymasz także pełny dostęp do repozytorium, gdzie znajdziesz gotowy projekt, który będziesz mogła/mógł skopiować i uruchomić lokalnie. Wszystkie poruszone tematy znajdują się poniżej w spisie lekcji jako słowa kluczowe. Kurs skoncentrowany jest na stworzeniu gotowego komercyjnego projektu.
Czego się nauczysz:
- Tworzenie nowoczesnych aplikacji w Spring Boot 3
- Konfiguracja projektu od podstaw
- Tworzenie i obsługa kontrolerów
- Definiowanie serwisów i repozytoriów
- Używanie Dependency Injection w Spring
- Praca z JPA i Hibernate – mapowanie obiektowo-relacyjne (ORM)
- Tworzenie relacji między encjami (One-to-One, One-to-Many, Many-to-Many)
- Praca z Thymeleaf
- Dynamiczne generowanie widoków HTML
- Obsługa formularzy i walidacji danych (również walidacja po stronie serwera)
- Używanie fragmentów szablonów w Thymeleaf
- Tworzenie dynamicznych widoków z wykorzystaniem warunków i pętli
- Zabezpieczanie aplikacji
- Implementacja autoryzacji i uwierzytelniania z użyciem Spring Security
- Zarządzanie rolami i uprawnieniami użytkowników
- Tworzenie mechanizmów ochrony aplikacji przed atakami typu CSRF
- Tworzenie mechanizmów logowania, rejestracji oraz resetowania hasła
- Obsługa błędów
- Globalna obsługa błędów w Spring
- Personalizowane strony błędów (np. 404, 500)
- Zarządzanie wyjątkami i ich logowanie
- Wyświetlanie spersonalizowanych komunikatów dla użytkownika
- Funkcje aplikacji (klon Twittera):
- Rejestracja i logowanie użytkowników z obsługą tokenów
- Dodawanie, edytowanie i usuwanie postów
- Dodawanie komentarzy do postów
- Edycja i personalizacja profilu użytkownika
- Przeglądanie profili innych użytkowników
- Funkcje takie jak: zakładki, polubienia, statystyki (wyświetlenia, liczba polubień, liczba zakładek)
- Przeglądanie i filtrowanie postów
- Praca z bazami danych
- Tworzenie relacyjnych baz danych z wykorzystaniem H2
- Konfiguracja połączenia z bazą danych w Spring Boot
- Automatyczne generowanie schematu bazy danych
- Obsługa zapytań HQL oraz Query Methods w Spring Data JPA
- Kontrola wersji i współpraca zespołowa
- Praca z systemem kontroli wersji Git
- Zarządzanie repozytoriami na GitHubie
- Praca z commitami
Struktura kursu:
- Czas trwania: 11 godzin wartościowych materiałów w których od zera krok o kroku budujemy aplikacje
- Materiały dodatkowe: Linki do dokumentacji oraz commit’y na GitHub’ie do każdego etapu kursu
Spis lekcji ze słowami kluczowymi poruszanych tematów:
- Wstęp do kursu
- Środowisko pracy
- Java 17, PostgreSQL, GIT, Maven, IntelliJ
- Struktura projektu
- Dwa sposoby startu
- Link do repozytorium z gotowym projektem
- Prezentacja portalu
- Środowisko pracy
- Pierwsze kroki
- Nowe repozytorium
- GitHub
- Inicjalizacja projektu
- Spring Boot Initializr, Spring Calendar, Spring Blog
- Konfiguracja bazy H2
- Nowe repozytorium
- Model
- Prezentacja struktury danych
- JPA Entities, IntelliJ Entity-diagram
- Pierwsza klasa encji: User
- Encja, Lombok
- Klasa encji: Role
- 3 kolejne klasy encji: Post, Heart, Bookmark
- Klasa encji: Comment
- Refaktoryzacja klas w pełnowartościowe encje
- @Entity, @Id, @GeneratedValue, @NoArgsConstructor, @AllArgsConstructor
- Dodanie mapowania ManyToOne
- Dodanie mapowania OneToMany
- Dodanie mapowania ManyToMany
- @JoinTable, @JoinColumn
- Testujemy zmiany
- @Table, Konfiguracja bazy danych w application.properties
- Prezentacja struktury danych
- Warstwa danych
- Dane testowe
- CommandLineRunner, @Component
- Tworzymy repozytoria
- JpaRepository<T, ID>
- Dodajemy dane testowe
- Dependency injection, @Builder (Lombok)
- Dodajemy dane testowe: Krok 2
- JPA Auditing
- @CreatedDate, @LastModifiedDate, @EntityListener, @EnableJpaAuditing
- Commit zmian warstwy danych
- Dane testowe
- Strona główna
- IndexController
- @Controller, @GetMapping
- Podłączenie Bootstrap’a
- Bootstrap CSS
- Pierwszy serwis
- @Service, Model
- Pierwsze kroki z Thymeleaf
- th:each
- O ikonach słów kilka
- JPA Queries
- FetchType.EAGER
- Sekcje na stronie
- Bootstrap: Containers, Grid, Flex, Cards, Thypography
- Nowa kolumna i serwis
- Dodajemy nawigację
- Dodawanie nowego postu – wstep
- Formularz Bootstrap
- Dodawanie nowego postz – PostMapping
- @PostMapping, th:action, th:object, th:field
- Nowy post: Walidacja
- @Valid, @NotBlank, @Size, @Column
- Nowy post: Feedback
- BindingResult, RedirectAttributes, FlashAttributes, th:classappend
- IndexController
- Spring Security
- Konfiguracja
- @Configuration, @EnableWebSecurity, AuthenticationProvider, PasswordEncoder, SecurityFilterChain
- Zalogowany użytkownik jako autor postu
- SecurityContextHolder
- Formularz logowania
- SPRING_SECURITY_LAST_EXCEPTION
- Formularz rejestracji
- Rejestracja 1
- Rejestracja 2
- MailService 1
- MailService 2
- mailtrap
- Aktywacja użytkownika
- @PathVariable
- Reset hasła, formularz e-mail
- @RequestParam
- Reset hasła, formularz nowego hasła
- @Query, @Param, @Transactional
- Wylogowanie
- thymeleaf-extras-springecurity6
- Konfiguracja
- Posty
- Widok
- Aktualizacja obrazów i liczby wyświetleń
- Domain-driven design (DDD), th:if
- Dodawanie zakładek i polubień
- Lista komentarzy
- @ModelAttribute
- Dodawanie komentarza
- Usuwanie komentarza
- CascadeType.REMOVE
- Usuwanie postów
- Aktualizacja postów
- Update
- Update
- Dodatki
- Strona polubień
- Twoje zadanie: Strona zakładek
- Profil
- Wstęp
- Edycja profilu
- SecurityContextHolder
- Mała poprawka
- Na koniec
- Obsługa wyjątków
- @ControllerAdvice, @ExceptionHandler
- Fragmenty thymeleaf
- th:fragments, th:insert
- Obsługa wyjątków
Wymagania kursu:
- Podstawowa znajomość Javy – umiejętność pisania prostych aplikacji w Javie.
- Podstawowa wiedza o Spring Framework – znajomość kluczowych pojęć, takich jak kontrolery, serwisy, repozytoria.
- Chęć nauki i rozwoju – otwartość na pracę z nowoczesnymi narzędziami i technologiami.
Nie musisz być ekspertem, ale podstawy Javy i Spring’a są niezbędne, aby w pełni skorzystać z kursu.