cvičení 08

Spring server a JPA
Spring server
Použijte https://start.spring.io (Spring initializer) a vytvořte nový maven projekt web server.
Pří vytváření zvolte:
- Maven
- verzi 3.4.4
- Group, artifact, name, package name - zvolte nějaké smysluplné hodnoty (ne demo a example)
- Packaging JAR
- Java version 21
- Hodnoty důležité pro úspěšné provedení testů
- Group: cz.vsb.fei
- Artifact: java2-lab08
- Name: java2-lab08
- Package name: cz.vsb.fei.java2.lab08 (ne podtržítko ale tečku, jinak neprojdou testy v Kelvinu)
Do závislostí přidejte (pomocí tlačítka "ADD DEPENDENCIES...")
- Lombok
- Spring Web
- Thymeleaf
- Spring Data JPA
- H2 Database
Projekt vygenerujte (stáhněte) a do pom.xml přidejte do závislostí:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<scope>provided</scope>
<version>6.6.11.Final</version>
</dependency>
Do pom.xml přidejte do /project/build/plugins/plugin(maven-compiler-plugin)/configuration/annotationProcessorPaths/:
<path>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>6.6.11.Final</version>
</path>
Do pom.xml přidejte do /project/build/plugins/plugin(maven-compiler-plugin)/:
<executions>
<execution>
<id>process</id>
<phase>generate-sources</phase>
</execution>
</executions>
Do pom.xml přidejte do /project/build/plugins/:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated-sources/annotations</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
Implementujte
- Vytvořte entitu Player se jménem, příjmením a datem narození (firstName, lastName, dayOfBirth)
- Vytvořte JPA repository pro Player
- Vytvořte REST controller s metodami pro CRUD operace (dodržte pravidla REST api) a pro vygenerování většího počtu objektů hráč.
- Vytvořte vlastní metodu s využitím anotace @Query a pro ni nějaké URL na vyvolání (napři pro nejmladší nebo nejstarší hráče)
- Vytvořte vlastní třídu CustomPlayerRepository s vlastní metodou a k ni nějaké URL na vyvolání.
Projekt spusťte jako běžnou java aplikaci a otestujte zda se na adrese http://localhost:8080 oběví vámi zvolený text.
Pokud chcete pro testování Swagger UI stačí přidat závislost:
Projekt spusťte jako běžnou java aplikaci a otestujte zda se na adrese http://localhost:8080 oběví vámi zvolený text.
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.8.6</version>
</dependency>
Řešení
Řešení najdete v https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab08v1/-/tree/solution?ref_type=heads ve větvi solution.
https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab08v2/-/tree/solution?ref_type=heads
https://gitlab.vsb.cz/jez04-vyuka/java2/labs/java2lab08v3/-/tree/solution?ref_type=heads
Způsob odevzdání
Řešení domácího úkolu odevzdejte do systému Kelvin jako úlohu "Java 1 - domácí úkol z 3. cvičení". Do systému nahrejde celý obsah složky src a soubor pom.xml (prípadně run skript). Postupujte dle níže přiloženého vide.
Následně bude projekt zkompilován a provedou se Unit Testy. Vzhledem k povaze projektu a prozatímnímu testovacímu využití systému Kelvin v předmětu Java 2 v případě selhání nezoufejte.
Jedná se o pomocný test, vše bude ještě hodnoceno ručně. Důležité je nahrát soubory aby bylo možno vše vyhodnotit a provést analýzu na plagiáty. Věřím, že je to je formalita a všichni z Vás tvoří vlastní kód.