Java EE ו- Flex, חלק 1: שילוב משכנע

Adobe Flex הופכת לבחירה פופולרית ליצירת צד הלקוח ביישומי Java ארגוניים. במאמר הראשון משני זה, דסטין מרקס מדגים כיצד Flex יכול לעזור לך לספק ממשקי משתמש אינטראקטיביים מאוד הגישה לוגיקה הארגונית של יישום Java EE שלך. קבלו מבוא מעשי לשכלול לקוח Flex פשוט, ואז אפשרו לו לתקשר עם שרת Java EE שלכם. רמה: מתחיל

Flex 3 נותן לך אפשרות נוספת לבניית ממשקי משתמש מבוססי דפדפן ליישומי Java EE שלך. אם עדיין לא גילית כמה פשוט להוסיף לקוחות עשירים ליישומי Java ארגוניים באמצעות Flex, מאמר זה יכול לשמש כנקודת הכניסה שלך. תגלה אילו יתרונות מגישה Flex לשולחן, כיצד ליצור פריסות יישומים באמצעות דקדוק ה- XML ​​של Flex וכיצד לגרום ללקוח Flex שלך לעבוד עם יישום Java EE.

מפתחי Java המאמצים את Flex

אנו יודעים שחלק ממפתחי Java עמידים בפני Flex כטכנולוגיה חזיתית עבור Java EE, אך יש טיעון חזק למתן הזדמנות ל- Flex. הסופר דסטין מרקס דן בגורמים המניעים את אימוץ ה- Flex בקהילת Java בסרגל הצד למאמר המעשי הזה.

לפני שאבקש ממך להתקין את Flex ולהתחיל להרכיב יישום לדוגמה, בואו ניקח בחשבון את היתרונות של שימוש ב- Flex כטכנולוגיית צד הלקוח. Flex מציע יתרונות ספציפיים למפתחי Java וחלקם כלליים יותר. נסתכל על שניהם.

מדוע לבחור ב- Flex?

אימוץ טכנולוגיה חדשה פירושו אימוץ עקומת למידה, שיכולה לשכנע מעט. להלן מספר יתרונות כלליים לשימוש ב- Flex:

  • אתה יכול לכתוב קוד Flex פעם אחת ולהפעיל אותו בכל דפדפן אינטרנט שעבורו קיים תוסף Flash Player. אין צורך בקוד זיהוי הדפדפן או זיהוי האובייקטים האופייני ליישומי JavaScript או Ajax.
  • זמן הריצה היעד (Flash Player 9 ואילך) מותקן ביותר מ- 95 אחוז מדפדפני האינטרנט ברחבי העולם.
  • Flex מבוסס על סטנדרטים. לשפת התסריט שלה (ActionScript 3.0) שורשים ב- ECMAScript (אותה מפרט המיושמת על ידי JavaScript), ושפת הפריסה שלה היא דקדוק XML ספציפי הנקרא MXML. היכרות עם הסטנדרטים הבסיסיים יכולה לעזור לך ללמוד Flex בקלות יחסית.
  • ל- Flex יש מנגנון פשוט ומרענן לקשירת המאפיין של אובייקט אחד ביישום Flex ל- המאפיין של אובייקט אחר ב- Flex. תכונה ממכרת זו מכונה בדרך כלל מחייב נכסים . (JSR 295: Beans Binding נועד להוסיף תכונה זו לשפת Java, אך היא לא תיכלל ב- Java SE 7.)
  • אתה יכול לשייך את הקצה הקדמי מבוסס Flex לכל טכנולוגיית Back-end באמצעות טכניקות המקדמות צימוד רופף. Flex מספקת תמיכה מובנית בתקשורת עם רכיבים אחוריים הן באמצעות שירותי HTTP והן שירותי אינטרנט מבוססי SOAP.
  • Flex מספק מערך עשיר של רכיבים, אפקטים של פלאש (כולל אנימציה, וידאו ושמע) ותכונות נגישות שמקלות על הוספת עושר וחוויות זורמות במיוחד ליישום אינטרנט.

Flex עבור מפתחי Java

יתרונות כלליים עשויים להספיק כדי למשוך אותך ל- Flex, אך ישנם אחרים אשר מכוונים בעיקר או כולה למפתחי Java.

יתרון אחד כזה הוא הדמיון הבולט בין Java ל- ActionScript 3.0 בתכונות השפה, המושגים והתחביר. השפות משתמשות באמירות מותנות דומות, תחביר לולאה ואפילו מוסכמות קידוד. (ניתן לטעון ש- ActionScript דומה יותר לג'אווה מאשר לסקריפט JavaFX.) כלי ייצור התיעוד דמוי Javadoc, כמו Javadoc, משתמש באותו תחביר של הערות שבו אתה משתמש ב- Java כדי ליצור תיעוד. מבנה האריזה של ActionScript קשור למבנה הספריות בדיוק באותו אופן שבו Java ניגשת לחבילות ולספריות.

ActionScript 3 מספק גם תכונות מונחות עצמים מבוססות כיתה (כגון מחלקות במובן Java, ירושה וממשקים) והקלדה סטטית. תוספות אלו למה שרובנו רגילים ב- JavaScript מקלות על למידה ושימוש ב- ActionScript. (ActionScript עדיין מנגיש הקלדה דינמית וירושה מבוססת אב-טיפוס עבור מצבים בהם אתה רוצה או זקוק לתכונות אלה של JavaScript מסורתי.)

היכולת של Flex לתקשר עם קצה אחורי של Java EE באמצעות HTTP או שירותי אינטרנט מבוססי SOAP מאוד שימושית, אך אינך מוגבל לגישות תקשורת אלה. Blaze DS - מוצר קוד פתוח נפרד של אדובי - מעניק לך גמישות רבה עוד יותר לתקשר בין חזית Flex להגשת ל- Java EE. BlazeDS מאפשר לך להשתמש ב- JMS לתקשורת ומאפשר לך להשתמש בשלט רחוק עם אובייקטים עם Java. BlazeDS מוסיף גם יתרונות פוטנציאליים לביצועים מכיוון שהוא משתמש בפורמט AMF3 בינארי לתקשורת מהירה יותר מהמקובל בדרך כלל עם XML.

מוצר קוד פתוח של צד שלישי בשם GraniteDS מציע אפשרויות רבות יותר להחלת חזית מבוססת Flex ליישום Java EE. GraniteDS מציעה תמיכה בפורמט הבינארי AMF3 וגם כמה תכונות שאינן זמינות עם BlazeDS. לדוגמא, GraniteDS מציע כלים ומסגרות שירות לשילוב קל יותר של Flex עם קצות אחוריים המבוססים על EJB 3, Spring Framework, Guice או Seam.

בדיון Flex עד כה, אני כבר השתמשתי שוב ושוב את המילים פשוט ו קלות . אבל לא פשוט לקחת את המילה שלי בזה. הדרך הטובה ביותר להבין כמה יסודות Flex פשוטים וקלים היא לנסות אותם בעצמך. בסעיפים הבאים תיישם יישום לדוגמא, תשנה את המיקום מחדש כדי להוסיף תכונות ולהפחית את קוד הדוד, ואז ליצור תקשורת בין הלקוח החדש שלך, מבוסס Flex ו- servlet Java.

רכישה והתקנה של Flex

בדוגמאות של מאמר זה משתמשים ב- Flex 3.2 SDK. אם ברצונך לבנות ולהפעיל את הדוגמאות, הורד את ה- Flex SDK (כולל מהדר שורת הפקודה והבאגים). קובץ ZIP יחיד מכיל את ה- Flex SDK למספר פלטפורמות.

פתח את הקובץ למיקום ברור, כגון C:\flex_sdk_3_2. מטעמי נוחות, הוסף את המיקום של binספריית ה- Flex SDK בנתיב כך שניתן להפעיל את כלי שורת הפקודה מכל ספריה. אני רוצה ליצור FLEX_HOMEמשתנה סביבה שמצביע על המיקום של Flex SDK ואז להוסיף $FLEX_HOME/binאו %FLEX_HOME%\binל- PATH. באפשרותך לאמת התקנה נכונה של Flex על ידי הפעלת הפקודה mxmlc -version, כמוצג באיור 1.

למרות שלא נדרש לבנות ולהפעיל את הדוגמאות, ייתכן שתהיה מעוניין להוריד את FlexBuilder 3, שזמין ללא עלות לתקופת ניסיון. FlexBuilder מאפשר לך להשתמש בכל עורך טקסטים (כגון JEdit או vim) או Java IDE (כגון NetBeans או Eclipse) כדי לכתוב ולתחזק קבצי MXML ו- ActionScript. Aptana Studio ו- Spket IDE כוללים תמיכה ספציפית בעריכת קבצים הקשורים ל- Flex.

MXML: פריסת Flex עם XML

Flex משתמש ב- MXML להגדרת פריסת יישום Flex. קבצי פריסת Flex נקראים בדרך כלל עם .mxmlסיומת. על קוד MXML להיות מעוצב היטב ב- XML ​​ולהשתמש במרחבי שמות XML. הדוגמה ברשימה 1 מדגימה יישום Flex פשוט אך פונקציונאלי לחלוטין, שנכתב כולו באמצעות MXML, המציג רשימה של מאמרים נבחרים ב- JavaWorld.

רישום 1. דוגמה סטטי MXML

מכיוון שהדוגמה הזו היא סטטית, היא לא מציגה יתרונות רבים של Flex ו- Flash. עם זאת, הוא משמש מבוא טוב ל- MXML.

כל הקוד ברשימה 1 הוא XML מעוצב היטב. רוב קווי XML ברישום 1 קשור לאותה שורות קוד (חוזרות על GridRowאלמנטים עם מקוננות GridItemו Labelאלמנטים). הם משמשים להגדיר רשת תצוגה סטטי עם Gridהרכיב שלה GridRowו GridItem-אלמנטים תת. השימוש , , ו לארגן נתונים נוכחים באופן דומה לאופן שבו אלמנטים בטבלת HTML

,, ו
, בהתאמה, משמשים לעתים קרובות.

דוגמה ראשונה זו של MXML מדגימה גם את תג הבסיס המשמש בכל יישומי MXML. תג זה כולל רוחב וגובה מפורשים ליישום Flex. mxהקידומת מזוהית עם מרחב XML Flex כחלק אלמנט השורש הזה.

תשתמש במהדר שורת הפקודה Flex mxmlc, כדי להרכיב את הדוגמאות של מאמר זה. ברירות המחדל של Flex (המוגדרות flex-config.xmlבקובץ) מספיקות לצרכי הדוגמאות, מה שהופך את ההידור mxmlcבקלות. בהנחה שהרישום הראשון ב- MXML נשמר בקובץ בשם Example1.mxml, אתה מרכיב אותו בפקודה זו:

mxmlc Example1.mxml

בהתאם להגדרות ברירת המחדל, קובץ MXML זה מורכב לקובץ SWF, הנקרא Example1.swf, הממוקם באותה ספריה כמו קובץ ה- MXML ממנו נוצר. באפשרותך לבצע את קובץ ה- SWF על ידי פתיחתו בדפדפן אינטרנט או פשוט על ידי הזנת כל שם הקובץ בשורת הפקודה. קובץ SWF שניתנו נראה בערך כמו איור 2.