Custom Search
Laporkan jika ada link yang bermasalah
[ HOME ] [ FORUM ] [ JAVA ] [ JARINGAN KOMPUTER] [ OCEAN ] [ SEARCH ]

Tuesday, May 8, 2012

Perbedaan Struts 1 dan Struts 2

Perbedaan Struts 1 dan Struts 2 :


Pada bagian berikut, kita akan membandingkan berbagai fitur antara kedua kerangka kerja. Struts 2.x sangat sederhana dibandingkan dengan 1.x struts, beberapa fitur excelent adalah:

  1. Servlet Ketergantungan:
    Tindakan di Struts1 memiliki ketergantungan pada API servlet sejak HttpServletRequest dan HttpServletResponse objek dilewatkan ke metode mengeksekusi ketika Aksi dipanggil tetapi dalam kasus Struts 2, Tindakan tidak kontainer tergantung karena mereka dibuat POJOs sederhana. Dalam struts 2, servlet konteks direpresentasikan sebagai Maps sederhana yang memungkinkan tindakan yang akan diuji dalam isolasi. Struts 2 Tindakan dapat mengakses permintaan dan respon yang asli, jika diperlukan. Namun, elemen arsitektur lain mengurangi atau menghilangkan kebutuhan untuk mengakses HttpServetRequest atau HttpServletResponse langsung.
  2. Tindakan kelas
    Pemrograman kelas abstrak, bukan interface adalah salah satu masalah desain kerangka Struts1 yang telah diselesaikan dalam rangka struts 2. Struts1 kelas Aksi perlu memperpanjang kelas kerangka dasar tergantung abstrak. Tapi dalam kasus Struts 2 Aksi kelas mungkin atau mungkin tidak mengimplementasikan antarmuka untuk mengaktifkan layanan opsional dan adat istiadat. Dalam kasus Struts 2, Tindakan tidak kontainer tergantung karena mereka dibuat POJOs sederhana. Struts 2 menyediakan kelas dasar ActionSupport untuk mengimplementasikan antarmuka umum digunakan. Walaupun, interface Aksi tidak diperlukan. Setiap objek POJO dengan tanda tangan mengeksekusi dapat digunakan sebagai obyek 2 Struts Action.
  3. Pengesahan
    Struts1 dan Struts 2 baik mendukung validasi manual melalui metode memvalidasi. Struts1 menggunakan memvalidasi metode pada ActionForm, atau memvalidasi melalui perluasan ke Validator Commons. Namun, Struts 2 mendukung validasi manual melalui metode memvalidasi dan kerangka Validasi Xwork. Kerangka Validasi Xwork mendukung validasi chaining menjadi sub-sifat menggunakan validasi yang ditetapkan untuk tipe kelas properti dan konteks validasi.
  4. Model threading
    Dalam Struts1, sumber daya Aksi harus thread-aman atau disinkronkan. Jadi Tindakan adalah lajang dan benang-aman, seharusnya hanya ada satu contoh dari kelas untuk menangani semua permintaan untuk Aksi itu. Strategi tunggal menempatkan pembatasan pada apa yang dapat dilakukan dengan Struts1 Tindakan dan membutuhkan perawatan ekstra untuk berkembang. Namun dalam kasus Struts 2, objek Aksi yang dipakai untuk setiap permintaan, sehingga tidak ada benang-isu keselamatan. (Dalam prakteknya, kontainer servlet menghasilkan banyak membuang-jauh benda per permintaan, dan satu objek lebih banyak tidak menerapkan hukuman kinerja atau dampak pengumpulan sampah.)
  5. Testability
    Pengujian Struts1 aplikasi yang sedikit rumit. Sebuah rintangan utama untuk menguji Struts1 Tindakan adalah bahwa melaksanakan metode karena ekspose Servlet API. Sebuah ekstensi pihak ketiga, Struts TestCase, menawarkan satu set objek tiruan untuk Struts1. Tapi Struts 2 Tindakan dapat diuji dengan instantiating Aksi, pengaturan properti dan memanggil metode. Ketergantungan dukungan Injeksi juga membuat pengujian sederhana. Tindakan di struts2 adalah POJOs sederhana dan kerangka independen, maka testability cukup mudah dalam struts2.
  6. Pemanenan Masukan
    Struts1 menggunakan objek ActionForm untuk menangkap masukan. Dan semua ActionForms kebutuhan untuk memperpanjang kelas dasar kerangka tergantung. JavaBeans tidak dapat digunakan sebagai ActionForms, sehingga pengembang harus membuat kelas berlebihan untuk menangkap masukan.
    Namun Struts 2 menggunakan sifat Aksi (sebagai properti masukan independen dari kerangka dasar) yang menghilangkan kebutuhan untuk objek input kedua, sehingga mengurangi redundansi. Selain itu dalam struts2, sifat Aksi dapat diakses dari halaman web melalui taglibs. Struts 2 juga mendukung pola ActionForm, serta objek bentuk POJO dan Tindakan POJO. Bahkan jenis objek kaya, termasuk obyek bisnis atau domain, dapat digunakan sebagai input / output objek.
  7. Ekspresi Bahasa
    Struts1 terintegrasi dengan JSTL, sehingga menggunakan JSTL-EL. EL Struts1 memiliki objek dasar grafik traversal, tetapi koleksi yang relatif lemah dan dukungan properti diindeks. Struts 2 juga dapat menggunakan JSTL, namun mendukung bahasa ekspresi yang lebih kuat dan fleksibel disebut "Obyek Grafik Notasi Bahasa" (OGNL).
  8. Binding nilai ke dalam pandangan
    Pada bagian pandang, Struts1 menggunakan mekanisme JSP standar untuk mengikat objek (diolah dari bagian model) dalam konteks halaman untuk mengakses. Namun Struts 2 menggunakan "ValueStack" teknologi sehingga dapat mengakses nilai taglibs tanpa kopling pandangan Anda dengan jenis objek itu rendering. Strategi ValueStack memungkinkan penggunaan kembali dilihat di berbagai jenis yang mungkin memiliki nama properti yang sama tetapi berbeda jenis properti.
  9. Jenis Konversi
    Biasanya, Struts1 ActionForm sifat semua Strings. Struts1 menggunakan Commons-BeanUtils untuk tipe konversi. Konverter ini jenis per kelas dan tidak dikonfigurasi per contoh. Namun Struts 2 menggunakan OGNL untuk tipe konversi. Kerangka ini meliputi konverter untuk jenis objek dasar dan umum dan primitif.
  10. Pengendalian Pelaksanaan Aksi
    Struts1 mendukung Prosesor Permintaan terpisah (siklus hidup) untuk setiap modul, tetapi semua Tindakan di modul harus berbagi siklus hidup yang sama. Namun Struts 2 mendukung menciptakan siklus hidup yang berbeda secara Aksi per melalui Interceptor Tumpukan. Tumpukan kustom dapat dibuat dan digunakan dengan Actions berbeda sesuai kebutuhan.

No comments:

Post a Comment