Programmering

Java EE og Flex, del 1: En overbevisende kombination

Adobe Flex er ved at blive et populært valg til at generere klientsiden af ​​virksomhedens Java-applikationer. I denne første af to artikler demonstrerer Dustin Marx, hvordan Flex kan hjælpe dig med at levere meget interaktive brugergrænseflader, der får adgang til din Java EE-applikations virksomhedslogik. Få en praktisk introduktion til perfektion af en simpel Flex-klient, og sæt den derefter i stand til at kommunikere med din Java EE-server. Niveau: Begynder

Flex 3 giver dig et andet valg til at oprette browserbaserede brugergrænseflader til dine Java EE-applikationer. Hvis du endnu ikke har opdaget, hvor simpelt det er at tilføje rige klienter til virksomhedens Java-applikationer med Flex, kan denne artikel tjene som dit indgangssted. Du finder ud af, hvilke fordele Flex giver bordet, hvordan du opretter applikationslayouter ved hjælp af Flexs XML-grammatik, og hvordan du får din Flex-klient til at arbejde med et Java EE-program.

Java-udviklere vedtager Flex

Vi ved, at nogle Java-udviklere er modstandsdygtige over for Flex som en front-end-teknologi til Java EE, men der er et stærkt argument for at give Flex en chance. Forfatter Dustin Marx diskuterer de faktorer, der driver Flex-adoption i Java-samfundet i et sidebjælke til denne praktiske artikel.

Før jeg beder dig om at installere Flex og begynde at sammensætte en prøveapplikation, lad os overveje fordelene ved at bruge Flex som klientside-teknologi. Flex tilbyder fordele, der er specifikke for Java-udviklere og nogle, der er mere generelle. Vi ser på begge dele.

Hvorfor vælge Flex?

At vedtage en ny teknologi betyder at omfavne en indlæringskurve, som kan tage noget overbevisende. Her er nogle generelle fordele ved at bruge Flex:

  • Du kan skrive Flex-kode en gang og køre den i enhver webbrowser, hvor der findes et Flash Player-plugin. Ingen af ​​browser- eller objektdetekteringskoderne, der er typiske for JavaScript- eller Ajax-applikationer, kræves.
  • Målet runtime (Flash Player 9 eller nyere) er installeret på mere end 95 procent af webbrowsere verden over.
  • Flex er baseret på standarder. Dets skriptsprog (ActionScript 3.0) har rødder i ECMAScript (den samme specifikation implementeret af JavaScript), og dens layoutsprog er en specifik XML-grammatik kaldet MXML. Kendskab til de underliggende standarder kan hjælpe dig med at lære Flex relativt let.
  • Flex har en forfriskende enkel mekanisme til at binde egenskaben for et objekt i en Flex-applikation til egenskaben for et andet objekt i Flex. Denne vanedannende funktion kaldes almindeligvis ejendom bindende. (JSR 295: Bønnerbinding er beregnet til at føje denne funktion til Java-sproget, men det vil ikke blive inkluderet i Java SE 7.)
  • Du kan knytte den Flex-baserede front-end til enhver back-end-teknologi ved hjælp af teknikker, der fremmer løs kobling. Flex leverer indbygget support til kommunikation med back-end via både traditionelle HTTP- og SOAP-baserede webtjenester.
  • Flex giver et rigt sæt komponenter, Flash-effekter (inklusive animation, video og lyd) og tilgængelighedsfunktioner, der gør det let at tilføje rigdom og meget flydende oplevelser til en webapplikation.

Flex til Java-udviklere

Generelle fordele kan være nok til at tiltrække dig til Flex, men der er andre, der hovedsageligt eller helt er rettet mod Java-udviklere.

En sådan fordel er den slående lighed mellem Java og ActionScript 3.0 i sprogfunktioner, koncepter og syntaks. Sprogene bruger lignende betingede udsagn, looping-syntaks og endda kodningskonventioner. (Det kan diskuteres, at ActionScript er mere som Java end JavaFX Script.) Fleks Javadoc-lignende ASDoc-dokumentationsgenereringsværktøj bruger den samme kommentarsyntaks, som du bruger i Java til at generere dokumentation. ActionScript's emballagestruktur er relateret til katalogstruktur på nøjagtig samme måde som Java nærmer sig pakker og kataloger.

ActionScript 3 giver også klassebaserede objektorienterede funktioner (såsom klasser i Java-forstand, arv og grænseflader) og statisk skrivning. Disse tilføjelser til, hvad de fleste af os er vant til i JavaScript, gør det lettere at lære og bruge ActionScript. (ActionScript gør stadig dynamisk typning og prototype-baseret arv tilgængelig i situationer, hvor du ønsker eller har brug for disse funktioner i traditionel JavaScript.)

Flexs evne til at kommunikere med en Java EE-back-end ved hjælp af HTTP eller SOAP-baserede webtjenester er meget nyttig, men du er ikke begrænset til disse kommunikationsmetoder. Blaze DS - et separat open source-produkt fra Adobe - giver dig endnu større fleksibilitet til at kommunikere mellem en Flex-front-end og en Java EE-back-end. BlazeDS lader dig bruge JMS til kommunikation og giver dig mulighed for at bruge objektfjernelse med Java. BlazeDS tilføjer også potentielle ydelsesfordele, fordi det bruger det binære AMF3-format til hurtigere kommunikation, end man normalt oplever med XML.

Et tredjeparts open source-produkt kaldet GraniteDS giver endnu flere valgmuligheder for at anvende en Flex-baseret front-end til en Java EE-applikation. GraniteDS tilbyder support til det binære AMF3-format og også nogle funktioner, der ikke er tilgængelige med BlazeDS. For eksempel tilbyder GraniteDS værktøjer og servicerammer til lettere integration af Flex med back-ender baseret på EJB 3, Spring Framework, Guice eller Seam.

I diskussionen af ​​Flex indtil videre har jeg gentagne gange brugt ordene enkel og let. Men tag ikke bare mit ord for det. Den bedste måde at forstå, hvor enkel og let Flex-basics er, er at prøve dem selv. I de næste sektioner implementerer du en prøveapplikation, refaktorer den for at tilføje funktioner og reducere kedelpladekoden og derefter etablere kommunikation mellem din nye Flex-baserede klient og en Java-servlet.

Anskaffelse og installation af Flex

Denne artikels eksempler bruger Flex 3.2 SDK. Hvis du vil opbygge og køre eksemplerne, skal du downloade Flex SDK (inklusive kommandolinjekompilatoren og fejlfindingsprogrammet). En enkelt ZIP-fil indeholder Flex SDK til flere platforme.

Pak filen ud til en åbenbar placering, f.eks C: \ flex_sdk_3_2. For nemheds skyld skal du tilføje placeringen af ​​Flex SDK beholder katalog i stien, så kommandolinjeværktøjerne kan køres fra ethvert bibliotek. Jeg kan godt lide at oprette en FLEX_HOME miljøvariabel, der peger på Flex SDK-placeringen og derefter tilføjer $ FLEX_HOME / bin eller % FLEX_HOME% \ bin til STI. Du kan kontrollere en korrekt installation af Flex ved at køre kommandoen mxmlc -versionsom vist i figur 1.

Selvom det ikke er nødvendigt at opbygge og køre eksemplerne, kan du være interesseret i at downloade FlexBuilder 3, som er tilgængelig uden omkostninger i en prøveperiode. FlexBuilder lader dig bruge en hvilken som helst teksteditor (såsom JEdit eller vim) eller Java IDE (såsom NetBeans eller Eclipse) til at skrive og vedligeholde MXML- og ActionScript-filer. Aptana Studio og Spket IDE inkluderer specifik support til redigering af Flex-relaterede filer.

MXML: Flex layout med XML

Flex bruger MXML til at definere en Flex-applikations layout. Flex-layoutfiler er typisk navngivet med en .mxml udvidelse. MXML-kode skal være velformet XML og bruge XML-navneområder. Eksemplet i Listing 1 demonstrerer en enkel, men fuldstændig funktionel Flex-applikation, skrevet udelukkende med MXML, der viser en liste over udvalgte JavaWorld-artikler.

Liste 1. Eksempel på statisk MXML

Fordi dette eksempel er statisk, viser det ikke mange af Flexs og Flashs fordele. Det fungerer dog som en god introduktion til MXML.

Al koden i liste 1 er velformet XML. De fleste af XML-linjerne i liste 1 er relateret til de samme kodelinjer (gentages GridRow elementer med indlejrede Gittermærke og Etiket elementer). De bruges til at definere et statisk displaygitter med Gitter komponent og dens GridRow og Gittermærke underelementer. Brugen af , og organisere og præsentere data på en måde svarende til, hvordan HTML-tabelelementer

, og anvendes ofte.

Dette første MXML-eksempel viser også root-tag, der bruges i alle MXML-applikationer. Dette tag indeholder en eksplicit bredde og højde for Flex-applikationen. Det mx præfikset er knyttet til Flex XML-navneområdet som en del af dette rodelement.

Du bruger Flex-kommandolinjekompileren, mxmlc, for at samle denne artikels eksempler. Flex-standardindstillingerne (defineret i flex-config.xml fil) er tilstrækkelige til eksemplernes behov, hvilket gør kompilering med mxmlc let. Forudsat at den første MXML-liste er gemt i en fil med navnet Eksempel1.mxml, kompilerer du det med denne kommando:

mxmlc Eksempel1.mxml

I overensstemmelse med standardindstillingerne kompileres denne MXML-fil til en SWF-fil, kaldet Eksempel1.swf, der er placeret i samme bibliotek som MXML-filen, den blev genereret fra. Du kan udføre SWF-filen ved at åbne den i en webbrowser eller ved blot at indtaste hele filnavnet på kommandolinjen. Den gengivne SWF-fil ligner figur 2.