Git Product home page Git Product logo

j2w-ukol06's Introduction

Úkol 6 – Citáty 2.0

Dnes vytvoříme stránku pro zobrazování citátů, ve verzi 2.0. „Business logika“, tedy podstata toho, co apliakce dělá, už nebude přímo v controlleru, ale bude ve službách (service). Služby budou rovnou tři – pro takhle jednoduchou stránku je to sice jako jít s kanonem na vrabce, ale je to jen protentokrát z cvičných důvodů.

Controller bude přímo používat službu CitatyService. V té bude jedna metoda (v případě bonusového úkolu dvě metody). Metoda nahodnyCitat() bude vracet String – text náhodného citátu. V kódu této metody se použijí dvě následující služby.

Služba CitatyService bude používat služby NahodneCisloService a CitatyRepository. NahodneCisloService bude mít jendu metodu – dejNahodneCislo(int horniMez), která dostane jako parametr číslo, a bude vracet náhodné číslo (typu int) mezi 0 (včetně) a parametrem horniMez (mimo).

Poslední služba se bude jmenovat CitatyRepository. Je to speciální typ služby, která slouží pro načítáí (případně ukládání) dat – proto se jmenuje repository. Ve Springu má repository dokonce speciální anotaci, tentokrát ale službu oanotuj už známou anotací @Service. Tato služba bude mít dvě metody. Metoda pocet() bude vracet číslo (int) – počet citátů v naší „databázi“. Metoda citat(int poradi) bude vracet text citátu se zadaným pořadovým číslem.

Pravděpodobně se ti budou při řešení úkolu hodit anotace @Service (umisťuje se nad třídu) a @Autowired (my ji umisťujeme nad konstruktor).

  1. Udělej fork zdrojového repository do svého účtu na GitHubu, případně pokračuj ve svém úkolu z předchozí lekce.
  2. Naklonuj si repository ze svého účtu na GitHubu na lokální počítač.
  3. Spusť si naklonovanou aplikaci a otevři v prohlížeči stránku http://localhost:8080/.
  4. Stránka zobrazuje náhodně zvolené citáty. Takže máš hotovo? 😁 Bohužel ne… Teď je potřeba kód v Javě upravit tak, aby výkonný kód byl ve službách popsaných výše a v controlleru se jen volala služba CitatyService.nahodnyCitat(), která vrátí – ano, náhodný citát. Veškerý výkonný kód je ale už v projektu napsaný. (Postup, kdy neměníme funkčnost programu, nýbrž jenom upravujeme už funkční kód, se používá tak často, že pro to existuje termín – refaktoring).
  5. Bonus: Můžeš přidat druhou metodu controlleru, která bude zobrazovat konkrétní citát zadaný číslem v URL. Tj. na adrese /1 se zobraí 1. citát, na adrese /2 druhý citát atd. Nemusíš řešit, co se stane, když uživatel zadá číslo mimo počet citátů v aplikaci. Ve služběCitatyService pro to vytvoř druhou metodu, konkretniCitat(int cislo), která bude vracet String s citátem s daným pořadovým číslem.
  6. Zkontroluj, zda vše funguje.
  7. Commitni a pushnni změny (výsledný kód) do svého repository na GitHubu.
  8. Vlož odkaz na své repository do tabulky s úkoly na Google Drive.

Odkazy

  • odkaz na stránku Lekce 7
  • Java SE 11 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 11.
  • Dokumentace Spring Boot – odsud je anotace @SpringBootApplication a třída SpringApplication.
  • Dokumentace Spring Framework – odsud jsou anotace @Controller, @GetRequest a třída ModelAndView.
  • Dokumentace Thymeleaf – šablonovací systém pro HTML použitý v projektu.
  • Unsplash – obrázky a fotografie k použití zdarma

j2w-ukol06's People

Contributors

filipjirsak avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.