Lekce 12
Repository použité při lekci
Tentokrát nepoužijeme předem vytvořené repository, ale vytvoříme si projekt úplně od začátku. Inspiraci však můžete hledat v repository FilipJirsak-Czechitas/j2w-lekce12. Není potřeba si dělat fork, protože toto repository nebudeme upravovat – stačí případně si soubory kopírovat z GitHubu nebo si naklonovat přímo moje repository.
Na závěr aplikaci nasadíme na server v internetu, aby byla dostupná pro všechny, třeba jako czechitas-jirsakf-lekce12.onrender.com.
Tahák
- Spring Initializr – start.spring.io
- Jedna z cloudových platforem umožňující nasazení Java aplikací: Render
- Další možnosti jsou uvedené např. zde: Heroku Free Alternatives (Heroku byla podobná služba, která měla základní variantu zdarma. V roce 2022 ale variantu zdarma přestali poskytovat.)
Spring Initializr
- Project: Gradle Project
- Language: Java
- Spring Boot:
- obecně doporučuji používat nejnovější (ne vývojovou) verzi
- nyní použijeme verzi 3.3.1
- nepoužívejte vývojové verze (SNAPSHOT, ALPHA nebo BETA)
- Packaging: Jar
- Java:
- doporučuji nejnovější LTS, tj. aktuálně 21
- aktuální LTS verze (Long Term Support) jsou 8, 11, 17 a 21 (verze 8 a 11 už mají jen rozšířenou podporu; příští LTS verze bude 25, která bude vydána v září 2025)
Dependencies
- Developer Tools
- Spring Boot DevTools
- Spring Configuration Processor
- Web
- Spring Web
- Template Engines
- Freemarker
- SQL
- Spring Data JPA
- Flyway Migration
- H2 Database (při použití databáze H2)
- MariaDB Driver (při použití databáze MariaDB)
- MySQL Driver (při použití databáze MySQL)
- PostgreSQL Driver (při použití databáze PostgreSQL)
- I/O
- Validation
Vývoj
- Vytvořit lokálně kód a ověřit.
- Přidat do kořenové složky projektu soubor
Dockerfile
- Na Windows je potřeba v příkazovém řádku (záložka Terminal v IntelliJ Idea) spustit příkaz, který soubor
gradlew
nastaví jako spustitelný na Linuxu (na kterém se pak spouští build na render.com):git update-index --chmod=+x gradlew
- Commitnout a pushnout na GitHub – je možné použít menu Git → GitHub → Share project on GitHub.
Render
- Vytvořit účet na render – doporučuji přihlášení přes GitHub.
- Napojit Render na GitHub – povolit přístup k repository (doporučuji povolit přístup ke všem repository).
- Po přihlášení zvolit New+ a zvolit Web Service.
- Zvolit příslušné repository z GitHubu.
- Pojmenování – ze jména vznikne adresa
nazev
.onrender.com. Dejte pro to do názvu např. svůj login, ať nevznikne v názvech konflikt. - Spustí se build, bude trvat desítky sekund. Po úspěšném buildu se aplikace nasadí a bude dostupná pod uvedenou adresou.
- Každý další push na GitHub spustí nový build a přenasadí se nová verze.
Chybové stránky
Ve složce templates
(v src/main/resources
) je možné vytvořit podsložku error
. V ní se pak vytvářejí šablony pojmenované podle HTTP stavového kódu, pro který chceme soubor použít. Pro stavový kód 404 (Not Found) tedy vytvoříme soubor /templates/error/404.ftlh
.
Odkazy
- Java SE 21 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 21.
- Dokumentace Spring Boot – odsud je anotace
@SpringBootApplication
a třídaSpringApplication
. - Dokumentace Spring Framework – odsud jsou anotace
@Controller
,@GetRequest
a třídaModelAndView
. - Dokumentace Spring Data JPA
- Hibernate ORM – nejpoužívanější implementace JPA
- Dokumentace Freemarker – šablonovací systém pro HTML použitý v projektu.
- Dokumentace HTML formulářů
- Dokumentace Hibernate Validator
- Databáze H2
- JUnit 5
- SLF4J – API pro logování
- Logback – implementace logování
- frontend frameworky – React, Vue, Svelte, Angular a další, případně čistý JavaScript
- Java (Spring, Micronaut, Helidon a další) – backend, JavaScript – frontend
- Spring Initializr – start.spring.io
- Platforma pro běh aplikací: render
Úkol
Z lekce 11 a 12 úkoly nebudou. Čas věnujte dokončení případně opravě úkolů z předchozích lekcí.