Programování

Java EE a Flex, část 1: přesvědčivá kombinace

Adobe Flex se stává populární volbou pro generování klientské stránky podnikových aplikací Java. V tomto prvním ze dvou článků Dustin Marx ukazuje, jak vám Flex může pomoci poskytovat vysoce interaktivní uživatelská rozhraní, která přistupují k podnikové logice vaší aplikace Java EE. Získejte praktický úvod k zdokonalení jednoduchého klienta Flex a povolte mu komunikaci se serverem Java EE. Úroveň: Začátečník

Flex 3 vám dává další volbu pro vytváření uživatelských rozhraní založených na prohlížeči pro vaše aplikace Java EE. Pokud jste dosud nezjistili, jak snadné je přidávat bohaté klienty do podnikových aplikací Java pomocí Flex, může vám tento článek posloužit jako vstupní bod. Zjistíte, jaké výhody Flex přináší tabulce, jak vytvářet rozložení aplikace pomocí gramatiky XML Flex a jak zajistit, aby váš klient Flex pracoval s aplikací Java EE.

Vývojáři Java přijímají Flex

Víme, že někteří vývojáři Java jsou odolní vůči Flex jako front-end technologii pro Java EE, ale existuje silný argument, který dává Flex šanci. Autor Dustin Marx pojednává o faktorech, které řídí přijetí Flex v komunitě Java, v postranním panelu tohoto praktického článku.

Než vás požádám, abyste nainstalovali Flex a začali dávat dohromady ukázkovou aplikaci, pojďme zvážit výhody používání Flex jako technologie na straně klienta. Flex nabízí výhody specifické pro vývojáře Java a některé obecnější. Podíváme se na oba.

Proč zvolit Flex?

Přijmout novou technologii znamená osvojit si křivku učení, což může být trochu přesvědčivé. Tady je několik obecných výhod používání Flexu:

  • Kód Flex můžete napsat jednou a spustit jej v libovolném webovém prohlížeči, pro který existuje plugin Flash Player. Není vyžadován žádný z kódů pro detekci prohlížeče nebo objektů pro detekci objektů, které jsou typické pro aplikace JavaScriptu nebo Ajaxu.
  • Cílový běhový modul (Flash Player 9 nebo novější) je nainstalován na více než 95 procentech webových prohlížečů po celém světě.
  • Flex je založen na standardech. Jeho skriptovací jazyk (ActionScript 3.0) má kořeny v ECMAScript (stejná specifikace implementovaná JavaScriptem) a jeho jazykem rozložení je specifická gramatika XML s názvem MXML. Znalost základních standardů vám pomůže relativně snadno se naučit Flex.
  • Flex má osvěžující jednoduchý mechanismus pro vazbu vlastnosti jednoho objektu v aplikaci Flex na vlastnost jiného objektu ve Flex. Tato návyková funkce se běžně označuje jako vázání vlastností. (JSR 295: Beans Binding je určen k přidání této funkce do jazyka Java, ale nebude součástí Java SE 7.)
  • Front-end založený na Flex můžete spojit s jakoukoli technologií back-end pomocí technik, které podporují volné propojení. Flex poskytuje integrovanou podporu pro komunikaci s back-endy prostřednictvím tradičních webových služeb založených na protokolu HTTP i SOAP.
  • Flex poskytuje bohatou sadu komponent, efekty Flash (včetně animace, videa a zvuku) a funkce usnadnění přístupu, které usnadňují přidání bohatství a vysoce plynulých zážitků do webové aplikace.

Flex pro vývojáře Java

K přilákání do Flex vás mohou stačit obecné výhody, ale existují i ​​jiné, které jsou většinou nebo zcela zaměřeny na vývojáře Java.

Jednou z takových výhod je nápadná podobnost mezi jazykem Java a jazykem ActionScript 3.0 v jazykových funkcích, konceptech a syntaxi. Jazyky používají podobné podmíněné příkazy, syntaxi opakování a dokonce i konvence kódování. (Je dokázáno, že ActionScript je spíš jako Java než JavaFX Script.) Nástroj pro generování dokumentace ASDoc společnosti Flex podobný Javadocu používá stejnou syntaxi komentářů, jakou používáte v Javě ke generování dokumentace. Struktura balení jazyka ActionScript souvisí se strukturou adresářů přesně stejným způsobem, jakým Java přistupuje k balíčkům a adresářům.

ActionScript 3 také poskytuje objektově orientované funkce založené na třídách (například třídy ve smyslu Java, dědičnost a rozhraní) a statické psaní. Tyto doplňky k tomu, na co si většina z nás zvykla v JavaScriptu, usnadňují učení a používání jazyka ActionScript. (ActionScript stále zpřístupňuje dynamické psaní a prototypovou dědičnost pro situace, kdy chcete nebo potřebujete tyto funkce tradičního JavaScriptu.)

Schopnost Flexu komunikovat s back-endem Java EE pomocí webových služeb založených na protokolu HTTP nebo SOAP je velmi užitečná, ale nejste omezeni na tyto komunikační přístupy. Blaze DS - samostatný produkt s otevřeným zdrojovým kódem od společnosti Adobe - vám poskytuje ještě větší flexibilitu při komunikaci mezi frontendem Flex a back-endem Java EE. BlazeDS vám umožňuje používat JMS ke komunikaci a umožňuje vám používat vzdálenou komunikaci objektů s Javou. BlazeDS také přidává potenciální výkonnostní výhody, protože používá binární formát AMF3 pro rychlejší komunikaci, než je obvyklé u XML.

Produkt třetí strany s otevřeným zdrojovým kódem nazvaný GraniteDS nabízí ještě více možností pro použití front-endu založeného na Flex na aplikaci Java EE. GraniteDS nabízí podporu pro binární formát AMF3 a také některé funkce, které nejsou k dispozici u BlazeDS. Například GraniteDS nabízí nástroje a servisní rámce pro snadnější integraci Flex s back-endy založenými na EJB 3, Spring Framework, Guice nebo Seam.

Při diskusích o Flexi jsem dosud opakovaně používal slova jednoduchý a snadný. Ale neberte to jen za slovo. Nejlepší způsob, jak pochopit, jak jednoduché a snadné základy Flex jsou, je vyzkoušet si je sami. V následujících částech implementujete ukázkovou aplikaci, refaktorujte ji, abyste přidali funkce a snížili standardní kód, a poté navažte komunikaci mezi novým klientem založeným na Flex a servletem Java.

Získání a instalace Flex

Příklady tohoto článku používají sadu Flex 3.2 SDK. Pokud chcete vytvořit a spustit příklady, stáhněte si sadu Flex SDK (včetně kompilátoru příkazového řádku a ladicího programu). Jeden soubor ZIP obsahuje sadu Flex SDK pro více platforem.

Rozbalte soubor na zřejmé místo, například C: \ flex_sdk_3_2. Pro usnadnění přidejte umístění sady Flex SDK zásobník adresář v cestě, takže nástroje příkazového řádku lze spustit z libovolného adresáře. Rád vytvářím FLEX_HOME proměnná prostředí, která ukazuje na umístění Flex SDK a poté přidá $ FLEX_HOME / koš nebo % FLEX_HOME% \ bin do CESTA. Správnou instalaci Flex můžete ověřit spuštěním příkazu mxmlc -verze, jak je znázorněno na obrázku 1.

Ačkoli není nutné sestavovat a spouštět příklady, možná vás bude zajímat stažení FlexBuilder 3, který je k dispozici bezplatně po zkušební dobu. FlexBuilder vám umožňuje psát a udržovat soubory MXML a ActionScript pomocí libovolného textového editoru (například JEdit nebo vim) nebo Java IDE (například NetBeans nebo Eclipse). Aptana Studio a Spket IDE obsahují specifickou podporu pro úpravy souborů souvisejících s Flex.

MXML: Flexibilní rozložení s XML

Flex používá MXML k definování rozvržení aplikace Flex. Soubory rozložení Flex jsou obvykle pojmenovány pomocí .mxml rozšíření. Kód MXML musí být dobře vytvořený XML a musí používat jmenné prostory XML. Příklad ve Výpisu 1 ukazuje jednoduchou, ale zcela funkční aplikaci Flex, napsanou zcela pomocí MXML, která zobrazuje seznam vybraných článků JavaWorld.

Výpis 1. Příklad statické MXML

Protože tento příklad je statický, nevykazuje mnoho výhod Flex a Flash. Slouží však jako dobrý úvod do MXML.

Celý kód v seznamu 1 je dobře vytvořený XML. Většina řádků XML v seznamu 1 souvisí se stejnými řádky kódu (opakování GridRow prvky s vnořenými GridItem a Označení elementy). Používají se k definování statické zobrazovací mřížky pomocí Mřížka komponenta a její GridRow a GridItem dílčí prvky. Použití , , a organizovat a prezentovat data podobným způsobem jako prvky tabulky HTML

, , a jsou často používány.

Tento první příklad MXML také ukazuje kořenová značka použitá ve všech aplikacích MXML. Tato značka obsahuje explicitní šířku a výšku pro aplikaci Flex. The mx předpona je přidružena k oboru názvů Flex XML jako součást tohoto kořenového prvku.

Použijete kompilátor příkazového řádku Flex, mxmlc, abychom sestavili příklady tohoto článku. Výchozí nastavení Flex (definované v flex-config.xml soubor) jsou dostatečné pro potřeby příkladů, kompilace s mxmlc snadný. Za předpokladu, že je první výpis MXML uložen do souboru s názvem Příklad1.mxml, zkompilujete jej pomocí tohoto příkazu:

mxmlc Example1.mxml

V souladu s výchozím nastavením je tento soubor MXML kompilován do souboru SWF s názvem Příklad1.swf, který je umístěn ve stejném adresáři jako soubor MXML, ze kterého byl vygenerován. Soubor SWF můžete spustit otevřením ve webovém prohlížeči nebo jednoduše zadáním celého názvu souboru na příkazovém řádku. Vykreslený soubor SWF vypadá podobně jako na obrázku 2.