Java EE i Flex, 1. dio: Uvjerljiva kombinacija

Adobe Flex postaje popularan izbor za generiranje klijentske strane poslovnih Java aplikacija. U ovom prvom od dva članka, Dustin Marx pokazuje kako vam Flex može pomoći u isporuci visoko interaktivnih korisničkih sučelja koja pristupaju poslovnoj logici vaše Java EE aplikacije. Dobijte praktični uvod u usavršavanje jednostavnog Flex klijenta, a zatim mu omogućite komunikaciju s vašim Java EE poslužiteljem. Razina: početnik

Flex 3 pruža vam još jedan izbor za izgradnju korisničkog sučelja temeljenog na pregledniku za vaše Java EE programe. Ako još niste otkrili kako je jednostavno dodavati bogate klijente u poslovne Java programe s Flexom, ovaj bi vam članak mogao poslužiti kao ulazna točka. Saznat ćete koje koristi Flex donosi na stol, kako stvoriti izgled programa pomoću Flex-ove XML gramatike i kako natjerati svog Flex klijenta da radi s Java EE aplikacijom.

Programeri Java usvajaju Flex

Znamo da su neki programeri Java otporni na Flex kao prednju tehnologiju za Java EE, ali postoji snažan argument za pružanje šanse Flexu. Autor Dustin Marx na bočnoj traci ovog praktičnog članka raspravlja o čimbenicima koji potiču usvajanje Flex-a u Java zajednici.

Prije nego što zatražim da instalirate Flex i počnete sastavljati uzorak aplikacije, razmotrimo prednosti upotrebe Flex-a kao tehnologije na strani klijenta. Flex nudi prednosti specifične za programere Java i neke općenitije. Pogledat ćemo oboje.

Zašto odabrati Flex?

Usvajanje nove tehnologije znači prihvaćanje krivulje učenja, što može biti uvjerljivo. Evo nekoliko općih prednosti upotrebe Flex-a:

  • Možete jednom napisati Flex kôd i pokrenuti ga u bilo kojem web pregledniku za koji postoji dodatak Flash Player. Nije potreban nijedan kod za otkrivanje preglednika ili za otkrivanje objekata tipičan za JavaScript ili Ajax aplikacije.
  • Ciljno vrijeme izvođenja (Flash Player 9 ili novija) instalirano je na više od 95 posto web-preglednika širom svijeta.
  • Flex se temelji na standardima. Njegov skriptni jezik (ActionScript 3.0) ima korijene u ECMAScriptu (istu specifikaciju implementirao JavaScript), a jezik izgleda je posebna XML gramatika koja se naziva MXML. Upoznavanje sa temeljnim standardima može vam pomoći da relativno lako naučite Flex.
  • Flex ima osvježavajuće jednostavan mehanizam za vezivanje svojstva jednog objekta u Flex aplikaciji za svojstvo drugog objekta u Flexu. Ova se ovisnost obično naziva vezivanjem svojstava . (JSR 295: Beans Binding je namijenjen dodavanju ove značajke u jezik Java, ali neće biti uključen u Java SE 7.)
  • Prednji kraj zasnovan na Flexu možete povezati s bilo kojom pozadinskom tehnologijom pomoću tehnika koje promiču labavo spajanje. Flex pruža ugrađenu podršku za komunikaciju sa pozadinskim mrežama putem tradicionalnih HTTP i SOAP-baziranih web usluga.
  • Flex nudi bogat skup komponenata, Flash efekata (uključujući animacije, video i audio) i značajke pristupačnosti koje olakšavaju dodavanje bogatstva i vrlo fluidnih iskustava u web aplikaciju.

Flex za programere Java

Opće koristi mogle bi biti dovoljne da vas privuku na Flex, ali postoje i druge koje su uglavnom ili u potpunosti namijenjene programerima Java.

Jedna od takvih pogodnosti je zapanjujuća sličnost Java-e i ActionScript-a 3.0 u značajkama jezika, konceptima i sintaksi. Jezici koriste slične uvjetne izjave, petlju sintakse, pa čak i konvencije kodiranja. (Diskutabilno je da je ActionScript sličniji Javi nego JavaFX Script.) Flexov Javadoc-sličan alat za generiranje dokumentacije ASDoc koristi istu sintaksu komentara koju koristite u Javi za generiranje dokumentacije. Struktura pakiranja ActionScript-a povezana je sa strukturom direktorija na potpuno isti način na koji Java pristupa paketima i direktorijima.

ActionScript 3 također nudi objektno orijentirane značajke temeljene na klasama (kao što su klase u Java smislu, nasljeđivanje i sučelja) i statičko tipkanje. Ovi dodaci onome na što je većina nas navikla u JavaScript-u olakšavaju učenje i upotrebu ActionScript-a. (ActionScript i dalje čini dinamično tipkanje i nasljeđivanje temeljeno na prototipu dostupno u situacijama kada želite ili trebate one značajke tradicionalnog JavaScript-a.)

Flexova sposobnost komunikacije s Java EE pozadinom koristeći HTTP ili SOAP temeljene web usluge vrlo je korisna, ali niste ograničeni na te komunikacijske pristupe. Blaze DS - zasebni Adobeov proizvod otvorenog koda - pruža vam još veću fleksibilnost za komunikaciju između Flex front-end i Java EE back-end. BlazeDS vam omogućuje upotrebu JMS-a za komunikaciju i omogućuje vam upotrebu udaljenih objekata s Javom. BlazeDS također dodaje potencijalne prednosti izvedbe jer koristi binarni AMF3 format za bržu komunikaciju nego što je to uobičajeno s XML-om.

Neovisni proizvod otvorenog koda nazvan GraniteDS nudi još više izbora za primjenu Flex-based front-enda na Java EE aplikaciju. GraniteDS nudi podršku za binarni format AMF3, a također i neke značajke koje nisu dostupne s BlazeDS. Na primjer, GraniteDS nudi alate i uslužne okvire za lakšu integraciju Flex-a s pozadinskim pozadinama na temelju EJB 3, Spring Framework, Guice ili Seam.

U dosadašnjoj raspravi o Flexu, više puta sam koristio riječi jednostavno i lako . Ali nemojte mi vjerovati samo na riječ. Najbolji način da shvatite koliko su jednostavne i jednostavne osnove Flex-a jest isprobati ih sami. U sljedećim odjeljcima implementirat ćete uzorak aplikacije, refaktorizirati je kako biste dodali značajke i smanjili šifru uzorka, a zatim uspostaviti komunikaciju između vašeg novog klijenta temeljenog na Flexu i Java servleta.

Nabava i instaliranje Flex-a

Primjeri ovog članka koriste Flex 3.2 SDK. Ako želite izgraditi i pokrenuti primjere, preuzmite Flex SDK (uključujući kompajler naredbenog retka i program za ispravljanje pogrešaka). Jedna ZIP datoteka sadrži Flex SDK za više platformi.

Raspakirajte datoteku na očito mjesto, poput C:\flex_sdk_3_2. Radi praktičnosti dodajte mjesto bindirektorija Flex SDK u stazu tako da se alati naredbenog retka mogu pokretati iz bilo kojeg direktorija. Volim stvoriti FLEX_HOMEvarijablu okruženja koja usmjerava na mjesto Flex SDK, a zatim dodati $FLEX_HOME/binili %FLEX_HOME%\binna PATH. Ispravnu instalaciju Flex-a možete provjeriti pokretanjem naredbe mxmlc -version, kao što je prikazano na slici 1.

Iako za izradu i pokretanje primjera nije potrebno, možda ćete biti zainteresirani za preuzimanje FlexBuilder-a 3, koji je dostupan u besplatnom probnom razdoblju. FlexBuilder vam omogućuje upotrebu bilo kojeg uređivača teksta (kao što je JEdit ili vim) ili Java IDE (poput NetBeans ili Eclipse) za pisanje i održavanje MXML i ActionScript datoteka. Aptana Studio i Spket IDE uključuju specifičnu podršku za uređivanje datoteka povezanih s Flexom.

MXML: Flex raspored s XML-om

Flex koristi MXML za definiranje izgleda Flex aplikacije. Datoteke Flex izgleda obično se imenuju s .mxmlnastavkom. MXML kôd mora biti dobro oblikovan XML i koristiti XML prostore imena. Primjer u Popisu 1 prikazuje jednostavnu, ali potpuno funkcionalnu Flex aplikaciju, u potpunosti napisanu s MXML-om, koja prikazuje popis odabranih članaka JavaWorlda.

Popis 1. Primjer statičnog MXML-a

Budući da je ovaj primjer statičan, ne pokazuje mnoge Flex-ove i Flash-ove prednosti. Međutim, služi kao dobar uvod u MXML.

Sav kôd s popisa 1 dobro je oblikovan XML. Većina XML redaka u Popisu 1 povezani su s istim redovima koda (ponavljajući GridRowelementi s ugniježđenim GridItemi Labelelementima). Koriste se za definiranje statičke mreže prikaza s Gridkomponentom i njezinim GridRowi GridItempodelementima. Korištenje , te organizirati i prezentirati podatke na način sličan onome na koji HTML tablicu elemenata

,, i
, odnosno često se koriste.

Ovaj prvi MXML primjer također pokazuje korijensku oznaku koja se koristi u svim MXML aplikacijama. Ova oznaka uključuje eksplicitnu širinu i visinu za aplikaciju Flex. mxPrefiks je povezana s Flex XML namespace kao dio tog korijenskog elementa.

mxmlcZa sastavljanje primjera ovog članka upotrijebit ćete Flex kompajler naredbenog retka . Zadane vrijednosti Flex-a (definirane u flex-config.xmldatoteci) dovoljne su za potrebe primjera, što olakšava kompilaciju mxmlc. Pod pretpostavkom da je prvi MXML popis spremljen u datoteku s imenom Example1.mxml, sastavljate ga ovom naredbom:

mxmlc Example1.mxml

U skladu sa zadanim postavkama, ova se MXML datoteka kompajlira u SWF datoteku koja se naziva Example1.swf, smještena u isti direktorij kao i MXML datoteka iz koje je generirana. SWF datoteku možete izvršiti otvaranjem u web pregledniku ili jednostavnim unosom cijelog naziva datoteke u naredbeni redak. Renderirana SWF datoteka izgleda otprilike kao slika 2.