Úvod do hry v prostredí Java

1. Prehľad

Účelom tohto úvodného tutoriálu je preskúmať rámec Play Framework a zistiť, ako pomocou neho môžeme vytvoriť webovú aplikáciu.

Play je vysoko produktívny webový aplikačný rámec pre programovacie jazyky, ktorých kód je kompilovaný a spustený na JVM, hlavne Java a Scala. Integruje komponenty a API, ktoré potrebujeme pre vývoj moderných webových aplikácií.

2. Zahrajte si nastavenie rámca

Prejdime na oficiálnu stránku rámca Play a stiahneme si najnovšiu verziu distribúcie. V čase tohto tutoriálu je najnovšia verzia 2.7.

Stiahneme si priečinok zip tutoriálu Play Java Hello World a súbor rozbalíme na vhodné miesto. V koreňovom adresári tohto priečinka nájdeme znak sbt spustiteľný súbor, ktorý môžeme použiť na spustenie aplikácie. Prípadne môžeme nainštalovať sbt z ich oficiálnej stránky.

Použit sbt zo stiahnutého priečinka urobme nasledovné:

beh cd / cesta / do / priečinka / ./sbt

Upozorňujeme, že v aktuálnom adresári používame skript, a teda použitie príkazu ./ syntax.

Ak nainštalujeme SBT, potom to môžeme použiť:

beh cd / cesta / do / adresára / sbt

Po spustení tohto príkazu uvidíme vyhlásenie, ktoré hovorí „(Server spustený, pomocou klávesu Enter zastavte a vráťte sa späť na konzolu ...)“. To znamená, že naša aplikácia je pripravená, a preto teraz môžeme ísť do // localhost: 9000 kde sa zobrazí úvodná stránka služby Play:

3. Anatómia aplikácií Play

V tejto časti lepšie pochopíme, ako je štruktúrovaná aplikácia Play a na čo sa používa každý súbor a adresár v tejto štruktúre.

Ak by ste sa chceli hneď vyzvať k jednoduchému príkladu, preskočte na nasledujúcu časť.

Toto sú súbory a priečinky, ktoré nájdeme v typickej aplikácii Play Framework:

├── Aplikácia → Zdroje aplikácií │ ├── Aktíva → Zdroje skompilovaných aktív │ │ ├── Javascriptové skripty → Typicky zdroje kávových skriptov │ │ └── Štýly štýlov → Spravidla Menej zdrojov CSS │ ├── Ovládače → Ovládače aplikácií │ ├── modely → Aplikačná obchodná vrstva │ └── zobrazenia → Šablóny ├── build.sbt → Skript na zostavenie aplikácie ├── conf → Konfiguračné súbory a ďalšie nekompilované prostriedky (na ceste triedy) │ ├── application.conf → Hlavný konfiguračný súbor │ └── trasy → Definícia trás ├── dist → Ľubovoľné súbory, ktoré sa majú zahrnúť do distribúcie vašich projektov ├── lib → Závislosti nespravovaných knižníc ├── protokoly → Priečinok protokoly │ └── application.log → Predvolený súbor denníka ├─ ─ projekt → konfiguračné súbory sbt │ ├── build.properties → značka pre projekt sbt │ └── plugins.sbt → sbt pluginy vrátane vyhlásenia pre samotné hranie Play── verejné → verejné aktíva │ ├── obrázky → obrazové súbory │ ├── javascriptové súbory → súbory Javascript │ └── šablóny štýlov → súbory CSS ├── cieľové → vygenerované f iles │ ├── resolution-cache → Informácie o závislostiach │ ├── scala-2.11 │ │ ├── api → Generované dokumenty API │ │ │── triedy → Zkompilované súbory tried │ │ ├── trasy → Zdroje vygenerované z trás │ │ └── twirl → Zdroje generované zo šablón │ ├── univerzálne → Balenie aplikácie │ └── web → Zkompilovaný webový zdroj └── test → zdrojový priečinok pre testy jednotky alebo funkčnosti 

3.1. The aplikácia Adresár

Tento adresár obsahuje zdrojový kód Java, webové šablóny a zdroje zostavených prostriedkov - v podstate všetky zdroje a všetky spustiteľné zdroje.

The aplikácia adresár obsahuje niektoré dôležité podadresáre, z ktorých každý obsahuje jednu časť architektonického vzoru MVC:

  • modely - toto je aplikačná obchodná vrstva, súbory v tomto balíku pravdepodobne budú modelovať naše databázové tabuľky a umožnia nám prístup k vrstve perzistencie
  • názory - tento priečinok obsahuje všetky šablóny HTML, ktoré je možné vykresliť do prehľadávača
  • radiče - podadresár, v ktorom máme svojich kontrolórov. Kontrolóri sú zdrojové súbory Java, ktoré obsahujú akcie, ktoré sa majú vykonať pre každé volanie API. Akcie sú verejné metódy, ktoré spracúvajú požiadavky HTTP a vracajú rovnaké výsledky ako odpovede HTTP
  • aktíva- podadresár, ktorý obsahuje skompilované prvky ako CSS a javascript. Vyššie uvedené konvencie pomenovania sú flexibilné, naše balíčky môžeme vytvárať napr. an aplikácia / pomôcky balíček. Môžeme tiež prispôsobiť pomenovanie balíkov app / com / baeldung / kontroléry

Obsahuje tiež voliteľné súbory a adresáre podľa potreby konkrétnej aplikácie.

3.2. The verejné Adresár

Zdroje uložené v verejné adresár sú statické prostriedky, ktoré obsluhuje priamo webový server.

Tento adresár má zvyčajne tri podadresáre obrázkov, súborov CSS a JavaScript. Odporúčame, aby sme súbory podkladov usporiadali takto, aby boli konzistentné vo všetkých aplikáciách Play.

3.3. The konf Adresár

The konf adresár obsahuje konfiguračné súbory aplikácie. The application.conf je to miesto, kam vložíme väčšinu konfiguračných vlastností aplikácie Play. Definujeme koncové body pre aplikáciu v trás.

Ak aplikácia potrebuje nejaké ďalšie konfiguračné súbory, mali by byť umiestnené v tomto adresári.

3.4. The lib Adresár

The lib adresár je voliteľný a obsahuje nespravované závislosti knižnice. Ak máme nejaké poháre, ktoré nie sú špecifikované v systéme zostavovania, umiestnime ich do tohto adresára. Budú automaticky pridaní do triedy aplikácií.

3.5. The build.sbt Súbor

The build.sbt súbor je skript na zostavenie aplikácie. Tu uvádzame zoznam závislostí nevyhnutných na spustenie aplikácie, napríklad knižnice testov a perzistencie.

3.6. The projekt Adresár

Všetky súbory, ktoré konfigurujú proces zostavovania na základe SBT, sa nachádzajú v priečinku projekt adresár.

3.7. The cieľ Adresár

Tento adresár obsahuje všetky súbory vygenerované zostavovacím systémom - napríklad všetky .trieda súbory.

Keď sme videli a preskúmali adresárovú štruktúru príkladu Play Framework Hello World, ktorý sme si práve stiahli, môžeme teraz prejsť príkladom rámca.

4. Jednoduchý príklad

V tejto časti vytvoríme veľmi základný príklad webovej aplikácie. Pomocou tejto aplikácie sa oboznámime so základmi rámca Play.

Namiesto sťahovania ukážkového projektu a jeho budovania z neho Pozrime sa na ďalší spôsob, ako môžeme vytvoriť aplikáciu Play Framework pomocou sbt nový príkaz.

Poďme otvoriť príkazový riadok, prejsť do požadovaného umiestnenia a vykonať nasledujúci príkaz:

sbt new playframework / play-java-seed.g8

Pre tento bude potrebné mať nainštalovaný sbt už vysvetlené v časti 2.

Vyššie uvedený príkaz nás najskôr vyzve na zadanie názvu projektu. Ďalej požiada o doménu (v opačnom poradí, ako je to v Java pomenované podľa konvencie pomenovania balíkov), ktorá bude pre balíky použitá. Stlačíme Zadajte bez zadania názvu, ak chceme zachovať predvolené hodnoty uvedené v hranatých zátvorkách.

Aplikácia vygenerovaná týmto príkazom má rovnakú štruktúru ako tá, ktorá bola vygenerovaná predtým. Môžeme teda pokračovať v spúšťaní aplikácie, ako sme to robili predtým:

beh cd / cesta / do / adresára / sbt

Vyššie uvedený príkaz po dokončení vykonania zobrazí server na čísle portu 9000 vystaviť naše API, ku ktorým máme prístup // localhost: 9000. V prehľadávači by sa mala zobraziť správa „Vitajte v službe Play“.

Naše nové API má dva koncové body, ktoré si teraz môžeme postupne vyskúšať z prehliadača. Prvý, ktorý sme práve načítali, je koreňový koncový bod, ktorý načíta indexovú stránku s informáciou „Vitajte v hre!“ správa.

Druhý, o // localhost: 9000 / assets, je určený na sťahovanie súborov zo servera pridaním názvu súboru k ceste. Tento koncový bod môžeme otestovať získaním favicon.png súbor, ktorý bol stiahnutý spolu s aplikáciou, na //localhost:9000/assets/images/favicon.png.

5. Akcie a ovládače

Metóda Java vo vnútri triedy radiča, ktorá spracúva parametre požiadavky a vytvára výsledok, ktorý sa má odoslať klientovi, sa nazýva akcia.

Radič je rozširujúca sa trieda Java play.mvc.Controller ktorá logicky zoskupuje akcie, ktoré môžu súvisieť s výsledkami, ktoré pre klienta prinesú.

Poďme teraz k tomu app-parent-dir / app / controllers a venovať pozornosť HomeController.java.

The HomeControllerAkcia indexu vráti webovú stránku s jednoduchou uvítacou správou:

public Result index () {return ok (views.html.index.render ()); }

Táto webová stránka je predvolená index šablóna v balíku zobrazení:

@main („Vitajte v službe Play“) {}

Ako je uvedené vyššie, index stránka volá hlavný šablóna. Hlavná šablóna potom spracuje vykreslenie značiek hlavičky a tela stránky. Vyžadujú sa dva argumenty: a String pre názov stránky a Html objekt, ktorý chcete vložiť do tela stránky.

@ (title: String) (obsah: Html) @ * Tu zobrazujeme nadpis stránky `String`. * @ @title @ * A tu vykreslíme objekt `Html` obsahujúci * obsah stránky. * @ @obsah 

Zmeňme text v index zapíš trochu:

@main („Vitajte v Baeldungu“) {}

Opätovné načítanie prehliadača nám poskytne odvážny nadpis:

Vitajte v príručke Play Framework Tutorial na Baeldungu!

Šablónu môžeme úplne odstrániť odstránením vykresliť smernica v index () metóda HomeController aby sme mohli priamo vrátiť obyčajný text alebo text HTML:

public Result index () {return ok ("REST API with Play by Baeldung"); }

Po úprave kódu, ako je uvedené vyššie, budeme mať v prehliadači iba text. Bude to iba obyčajný text bez HTML alebo štylizácie:

REST API s Play od Baeldung

Rovnako dobre by sme mohli vytlačiť kód HTML zabalením textu do hlavičky tagy a potom odovzdanie textu HTML do Html.použiť metóda. Pokojne sa s tým pohrajte.

Pridajme a / baeldung / html koncový bod v trás:

Ovládače GET / baeldung / html.HomeController.applyHtml

Teraz vytvorme radič, ktorý vybavuje požiadavky v tomto koncovom bode:

public Result applyHtml () {return ok (Html.apply ("")); }

Keď sme na návšteve // localhost: 9000 / baeldung / html uvidíme vyššie uvedený text naformátovaný v HTML.

S odpoveďou sme manipulovali prispôsobením typu odpovede. Tejto funkcii sa budeme podrobnejšie venovať v ďalšej časti.

Videli sme tiež dve ďalšie dôležité funkcie rámca Play.

Najskôr opätovné načítanie prehliadača odráža najnovšiu verziu nášho kódu; to preto, lebo náš zmeny kódu sa zostavujú za chodu.

Po druhé, Play nám poskytuje pomocné metódy pre štandardné odpovede HTTP v play.mvc.výsledky trieda. Príkladom je ok () metóda, ktorá vráti odpoveď OK HTTP 200 popri tele odpovede, ktoré jej odovzdáme ako parameter. Metódu zobrazovania textu v prehliadači sme už použili.

Existuje viac pomocných metód ako napr nenájdené() a zlá požiadavka() v Výsledky trieda.

6. Manipulácia s výsledkami

Boli sme ťažiť z funkcie vyjednávania obsahu Play bez toho, aby si to vôbec uvedomoval. Prehrať automaticky odvodí typ obsahu odpovede z tela odpovede. Preto sme boli schopní vrátiť text v ok metóda:

návrat ok ("text na zobrazenie");

A potom by Play automaticky nastavil Druh obsahu hlavička do text / obyčajný. Aj keď to vo väčšine prípadov funguje, môžeme prevziať kontrolu a prispôsobiť hlavičku typu obsahu.

Poďme prispôsobiť odpoveď pre HomeController.customContentType akcia na text / html:

public Result customContentType () {return ok ("This is some text content"). as ("text / html"); }

Tento vzor sa týka všetkých druhov typov obsahu. V závislosti od formátu údajov, ktoré poskytujeme ok pomocnú metódu, môžeme nahradiť text / html od text / obyčajný alebo aplikácia / json.

Môžeme urobiť niečo podobné ako nastavenie hlavičiek:

public Result setHeaders () {return ok ("This is some text content") .as ("text / html") .withHeader ("Header-Key", "Some value"); }

7. Záver

V tomto článku sme preskúmali základy rámca Play. Pomocou aplikácie Play sme tiež mohli vytvoriť základnú webovú aplikáciu Java.

Ako obvykle je zdrojový kód tohto tutoriálu k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found