Java EE dan Flex, Bahagian 1: Kombinasi yang menarik

Adobe Flex menjadi pilihan yang popular untuk menjana pelanggan aplikasi Java syarikat. Dalam dua artikel pertama ini, Dustin Marx menunjukkan bagaimana Flex dapat membantu anda memberikan antara muka pengguna yang sangat interaktif yang mengakses logik perusahaan Java EE aplikasi anda. Dapatkan pengenalan langsung untuk menyempurnakan klien Flex yang sederhana, kemudian membolehkannya berkomunikasi dengan pelayan Java EE anda. Tahap: Pemula

Flex 3 memberi anda pilihan lain untuk membina UI berasaskan penyemak imbas untuk aplikasi Java EE anda. Sekiranya anda belum mengetahui betapa mudahnya menambahkan klien kaya ke aplikasi Java perusahaan dengan Flex, artikel ini dapat menjadi titik masuk anda. Anda akan mengetahui faedah apa yang dibawa Flex ke meja, bagaimana membuat susun atur aplikasi menggunakan tatabahasa XML Flex, dan bagaimana membuat klien Flex anda berfungsi dengan aplikasi Java EE.

Pemaju Java menggunakan Flex

Kami tahu bahawa beberapa pembangun Java tahan terhadap Flex sebagai teknologi front-end untuk Java EE, tetapi ada argumen kuat untuk memberi peluang kepada Flex. Pengarang Dustin Marx membincangkan faktor-faktor yang mendorong penggunaan Flex dalam komuniti Java di bar sisi artikel mudah ini.

Sebelum saya meminta anda memasang Flex dan mula mengumpulkan contoh aplikasi, mari kita pertimbangkan kelebihan menggunakan Flex sebagai teknologi di sisi pelanggan. Flex menawarkan kelebihan khusus untuk pemaju Java dan beberapa yang lebih umum. Kami akan melihat kedua-duanya.

Mengapa memilih Flex?

Mengadopsi teknologi baru bermaksud merangkul kurva pembelajaran, yang dapat menyakinkan. Berikut adalah beberapa kelebihan umum untuk menggunakan Flex:

  • Anda boleh menulis kod Flex sekali dan menjalankannya di mana-mana penyemak imbas Web yang terdapat pemalam Flash Player. Tidak ada kod pengesanan penyemak imbas atau pengesanan objek khas aplikasi JavaScript atau Ajax yang diperlukan.
  • Masa operasi sasaran (Pemain Flash 9 atau lebih baru) dipasang di lebih daripada 95 peratus penyemak imbas Web di seluruh dunia.
  • Flex berdasarkan standard. Bahasa skripnya (ActionScript 3.0) berakar pada ECMAScript (spesifikasi yang sama diterapkan oleh JavaScript), dan bahasa tata letaknya adalah tata bahasa XML tertentu yang disebut MXML. Keakraban dengan standard yang mendasari dapat membantu anda belajar Flex dengan mudah.
  • Flex mempunyai mekanisme sederhana yang menyegarkan untuk mengikat sifat satu objek dalam aplikasi Flex ke harta benda lain di Flex. Ciri ketagihan ini biasanya disebut sebagai mengikat harta . (JSR 295: Beans Binding dimaksudkan untuk menambahkan fitur ini ke bahasa Java, tetapi tidak akan disertakan dalam Java SE 7.)
  • Anda boleh mengaitkan front-end berasaskan Flex dengan teknologi back-end apa pun menggunakan teknik yang mendorong gandingan longgar. Flex menyediakan sokongan terpadu untuk komunikasi dengan back-end melalui kedua-dua perkhidmatan Web berasaskan HTTP dan SOAP tradisional.
  • Flex menyediakan sekumpulan komponen yang kaya, kesan Flash (termasuk animasi, video, dan audio), dan ciri kebolehaksesan yang memudahkan untuk menambahkan kekayaan dan pengalaman yang sangat lancar ke aplikasi Web.

Flex untuk pemaju Java

Manfaat umum mungkin cukup untuk menarik anda ke Flex, tetapi ada yang lain yang sebagian besar atau sepenuhnya ditujukan kepada pemaju Java.

Salah satu faedahnya adalah persamaan yang mencolok antara Java dan ActionScript 3.0 dalam ciri bahasa, konsep, dan sintaks. Bahasa menggunakan pernyataan bersyarat yang serupa, sintaks pengulangan, dan juga konvensyen pengekodan. (Boleh dikatakan ActionScript lebih seperti Java daripada Skrip JavaFX.) Alat penjanaan dokumentasi ASDoc seperti Javadoc Flex menggunakan sintaks komen yang sama dengan yang anda gunakan di Java untuk menghasilkan dokumentasi. Struktur pembungkusan ActionScript berkaitan dengan struktur direktori dengan cara yang sama seperti Java mendekati pakej dan direktori.

ActionScript 3 juga menyediakan ciri berorientasi objek berdasarkan kelas (seperti kelas dalam arti Java, pewarisan, dan antara muka) dan menaip statik. Penambahan ini yang biasa kita gunakan dalam JavaScript menjadikan pembelajaran dan penggunaan ActionScript lebih mudah. (ActionScript masih menjadikan penaipan dinamik dan berdasarkan prototaip tersedia untuk situasi ketika anda menginginkan atau memerlukan ciri-ciri JavaScript tradisional.)

Keupayaan Flex untuk berkomunikasi dengan Java EE back-end menggunakan perkhidmatan Web berasaskan HTTP atau SOAP sangat berguna, tetapi anda tidak terhad kepada pendekatan komunikasi tersebut. Blaze DS - produk sumber terbuka yang terpisah dari Adobe - memberi anda fleksibiliti yang lebih besar untuk berkomunikasi antara front-end Flex dan back-end Java EE. BlazeDS membolehkan anda menggunakan JMS untuk komunikasi dan membolehkan anda menggunakan pemindahan objek dengan Java. BlazeDS juga menambah faedah prestasi yang berpotensi kerana menggunakan format AMF3 binari untuk komunikasi yang lebih pantas daripada yang biasa dialami dengan XML.

Produk sumber terbuka pihak ketiga bernama GraniteDS menawarkan lebih banyak pilihan untuk menggunakan front-end berasaskan Flex ke aplikasi Java EE. GraniteDS menawarkan sokongan untuk format binari AMF3 dan juga beberapa ciri yang tidak tersedia dengan BlazeDS. Sebagai contoh, GraniteDS menawarkan alat dan kerangka perkhidmatan untuk menggabungkan Flex dengan back-end yang lebih mudah berdasarkan EJB 3, Spring Framework, Guice, atau Seam.

Dalam membincangkan Flex setakat ini, saya telah berulang kali menggunakan kata-kata yang mudah dan senang . Tetapi jangan hanya mengambil kata-kata saya untuk itu. Kaedah terbaik untuk memahami betapa asas dan mudahnya Flex adalah mencubanya sendiri. Pada bahagian seterusnya, anda akan menerapkan contoh aplikasi, refactor untuk menambahkan ciri dan mengurangkan kod plat boiler, dan kemudian menjalin komunikasi antara pelanggan baru Flex anda dan servlet Java.

Memperoleh dan memasang Flex

Contoh artikel ini menggunakan Flex 3.2 SDK. Sekiranya anda ingin membina dan menjalankan contohnya, muat turun Flex SDK (termasuk penyusun baris perintah dan penyahpepijat). Satu fail ZIP mengandungi Flex SDK untuk pelbagai platform.

Buka zip fail ke lokasi yang jelas, seperti C:\flex_sdk_3_2. Untuk kemudahan, tambahkan lokasi direktori Flex SDK bindi jalan sehingga alat baris perintah dapat dijalankan dari direktori mana pun. Saya suka membuat FLEX_HOMEpemboleh ubah persekitaran yang menunjuk ke lokasi Flex SDK dan kemudian menambah $FLEX_HOME/binatau %FLEX_HOME%\binke PATH. Anda boleh mengesahkan pemasangan Flex yang betul dengan menjalankan perintah mxmlc -version, seperti yang ditunjukkan pada Gambar 1.

Walaupun tidak diperlukan untuk membuat dan menjalankan contohnya, anda mungkin berminat untuk memuat turun FlexBuilder 3, yang tersedia tanpa biaya untuk tempoh percubaan. FlexBuilder membolehkan anda menggunakan penyunting teks (seperti JEdit atau vim) atau Java IDE (seperti NetBeans atau Eclipse) untuk menulis dan mengekalkan fail MXML dan ActionScript. Aptana Studio dan Spket IDE menyertakan sokongan khusus untuk mengedit fail yang berkaitan dengan Flex.

MXML: Susun atur fleksibel dengan XML

Flex menggunakan MXML untuk menentukan susun atur aplikasi Flex. Fail susun atur fleksibel biasanya dinamakan dengan .mxmlpelanjutan. Kod MXML mesti dibentuk dengan baik XML dan menggunakan ruang nama XML. Contoh dalam Penyenaraian 1 menunjukkan aplikasi Flex yang mudah tetapi berfungsi sepenuhnya, ditulis sepenuhnya dengan MXML, yang memaparkan senarai artikel JavaWorld terpilih.

Penyenaraian 1. Contoh MXML statik

Kerana contoh ini bersifat statik, ia tidak menunjukkan banyak kelebihan Flex dan Flash. Namun, ia berfungsi sebagai pengenalan yang baik untuk MXML.

Semua kod dalam Penyenaraian 1 adalah XML yang terbentuk dengan baik. Sebilangan besar baris XML dalam Penyenaraian 1 berkaitan dengan baris kod yang sama ( GridRowelemen berulang dengan elemen bersarang GridItemdan Labelelemen). Mereka digunakan untuk menentukan grid paparan statik dengan Gridkomponen GridRowdan GridItemsub-elemennya. Penggunaan , dan menyusun dan mempersembahkan data dengan cara yang serupa dengan bagaimana unsur-unsur jadual HTML

, dan
, masing-masing, sering digunakan.

Contoh MXML pertama ini juga menunjukkan tag root yang digunakan dalam semua aplikasi MXML. Teg ini merangkumi lebar dan tinggi yang jelas untuk aplikasi Flex. Yang mxawalan dikaitkan dengan XML ruang nama Flex sebagai sebahagian daripada unsur akar ini.

Anda akan menggunakan penyusun baris perintah Flex mxmlc, untuk menyusun contoh artikel ini. Lalai Flex (ditentukan dalam flex-config.xmlfail) cukup untuk keperluan contoh, menjadikan penyusunan dengan mxmlcmudah. Dengan andaian penyenaraian MXML pertama disimpan dalam fail bernama Example1.mxml, anda menyusunnya dengan arahan ini:

mxmlc Example1.mxml

Sesuai dengan tetapan lalai, file MXML ini disusun menjadi file SWF, disebut Example1.swf, yang ditempatkan di direktori yang sama dengan file MXML yang dihasilkannya. Anda boleh menjalankan fail SWF dengan membukanya di penyemak imbas Web atau dengan memasukkan keseluruhan nama fail di baris perintah. Fail SWF yang diberikan kelihatan seperti Gambar 2.