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>

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.