Spring merupakan salah satu framework DI yang cukup populer dan banyak digunakan oleh
developer Java sekarang ini. Ada banyak teknologi yang diadopsi oleh Spring, tapi core dari
Spring adalah DI atau IOC yang benar-benar memudahkan kita untuk membangun sebuah
aplikasi, membuat code kita menjadi lebih rapih dan lebih simple, kita tidak perlu lagi
menginisialisasi sebuah object, karena nantinya akan di load oleh Spring yang tentu saja sudah
kita siapkan di XML, tapi dalam beberapa kasus, memang tidak semua object harus kita siapkan
di Spring Container. Sebenarnya framework seperti Struts2 dan JSF juga menerapkan IOC, tapi
kedua framework tersebut dikhususkan untuk Java Enterprise, yang tentu saja membuat pasar
mereka tidak seluas Spring.
Spring sampai saat ini sudah mencapai versi 3.0, tidak ada lagi alasan Ô Ô melihat XML ratusan
baris karena sudah menerapkan anotasi yang membuat Spring terlihat sangat simple sekali.
Spring framework merupakan open source kerangka aplikasi untuk platform Java.
Versi pertama ditulis oleh Rod Johnson yang dirilis kerangka dengan penerbitan bukunya Ä Ô
Ô Ô ÄÄ
Ô
Ô Ô pada bulan Oktober 2002. Kerangka ini pertama
kali dirilis di bawah lisensi Apache 2.0 pada bulan Juni 2003. Rilis tonggak pertama, 1.0, dirilis
pada Maret 2004, dengan rilis tonggak lebih lanjut pada bulan September 2004 dan Maret
2005. Spring 1.2.6 kerangka memenangkanpenghargaan produktivitas tersentak dan JAX
Innovation Award pada tahun 2006. [2] [3] Spring 2.0 dirilis pada bulan Oktober 2006, dan Spring
2.5 pada bulan November 2007. Pada bulan Desember 2009 versi 3.0 GA dirilis. Versi saat ini
adalah 3.0.5.
Fitur utama dari Spring Framework dapat digunakan oleh aplikasi Java, tetapi ada ekstensi untuk
membangun aplikasi web di atas Java EEplatform. Walaupun Spring Framework tidak
memaksakan spesifik model pemrograman , telah menjadi populer di masyarakat Jawa sebagai
alternatif, pengganti, atau bahkan Selain Enterprise JavaBean EJB) model.
Kerangka Spring terdiri dari beberapa modul yang menyediakan berbagai layanan:
ÎÊ pnversi Pengendalian wadah: komponen aplikasi konfigurasi dan manajemen siklus hidup
benda-benda Jawa
ÎÊ Pemrograman berorientasi Aspek : memungkinkan pelaksanaan pemotongan rutinitas
cross
ÎÊ Akses data : bekerja dengan sistem manajemen database relasional pada platform Java
menggunakan JDBC dan pemetaan relasional obyek- alat
ÎÊ ðanajemen transaksi : transaksi API menyatukan beberapa manajemen dan transaksi
koordinat untuk objek Jawa
ÎÊ ðodel-view-controller : sebuah HTTP dan Servlet berdasarkan kerangka-memberikan kait
untuk perpanjangan dan penyesuaian
ÎÊ Yemote Access kerangka: configurative RPC gaya ekspor dan impor Jawa objek melalui
jaringan mendukung RMI , CORBA dan HTTP berbasis protokol-termasuk layanan
web ( SOAP )
ÎÊ onvensi-over-konfigurasi : solusi perkembangan pesat aplikasi untuk aplikasi berbasis
enterprise-Spring ditawarkan dalam Roo Spring modul
ÎÊ ratch processing : sebuah kerangka kerja untuk volume tinggi pengolahan yang
menampilkan fungsi dapat digunakan kembali termasuk penebangan / tracing, manajemen
transaksi, pengolahan statistik pekerjaan, pekerjaan lompat, dan sumber daya manajemen,
restart
ÎÊ tentikasi dan otorisasi : proses keamanan dikonfigurasi yang mendukung berbagai
standar, protokol, peralatan dan praktek melalui Keamanan Spring -proyek sub (dahulu
Acegi Sistem Jaminan untuk Spring).
ÎÊ Yemote ðanagement: eksposur configurative dan pengelolaan objek Java untuk atau jauh
konfigurasi lokal melalui JMX
ÎÊ Pesan: pendaftaran configurative objek pendengar pesan untuk konsumsi pesan transparan
dari antrian pesan melalui JMS , peningkatan pengiriman pesan lebih dari JMS API standar
ÎÊ Pengujian : dukungan kelas untuk menulis unit test dan uji integrasi
Dalam banyak kasus itu tidak perlu menggunakan wadah bila menggunakan bagian lain dari
Spring Framework, meskipun menggunakannya mungkin akan membuat aplikasi lebih mudah
untuk mengkonfigurasi dan menyesuaikan. Wadah Spring menyediakan mekanisme yang
konsisten untuk mengkonfigurasi aplikasi dan terintegrasi dengan hampir semua lingkungan
Jawa, dari aplikasi kecil untuk aplikasi enterprise besar.
wadah ini dapat berubah menjadi sebagian-compliant EJB3 wadah dengan cara
dari Pitchfork proyek. Kerangka Spring ini dikritik oleh beberapa sebagai standar tidak
sesuai. Namun,SpringSource tidak melihat kepatuhan EJB3 sebagai tujuan utama, dan
menyatakan bahwa Kerangka Musim Semi dan wadah memungkinkan untuk model
pemrograman yang lebih kuat.
Para AOP Kerangka Spring adalah intersepsi berbasis, dan dikonfigurasi pada runtime . Hal ini
menghilangkan kebutuhan untuk langkah kompilasi atau load-waktu menenun . Di sisi lain,
intersepsi hanya memungkinkan untuk dilindungi metode eksekusi atau umum pada obyek yang
sudah ada pada titik bergabung .
Dibandingkan dengan AspectJ kerangka, Spring AOP kurang kuat tetapi juga kurang
rumit. Spring 1.2 termasuk dukungan untuk mengkonfigurasi AspectJ aspek dalam
wadah. Spring 2.0 menambahkan lebih banyak integrasi dengan AspectJ,
misalnya, pointcut bahasa digunakan kembali dan dapat dicampur dengan berbasis aspek
SpAOP. Selanjutnya, Spring 2.0 menambahkan Aspek Spring perpustakaan yang menggunakan
AspectJ untuk menawarkan fitur Spring umum seperti manajemen transaksi deklaratif dan
injeksi ketergantungan melalui waktu kompilasi AspectJ atau beban-waktu
menenun. SpringSource juga menggunakan AspectJ untuk AOP dalam proyek-proyek Spring
lain seperti Spring Roo dan Spring Insight, dengan Spring Security juga menawarkan
berdasarkan aspek perpustakaan-AspectJ.
Spring AOP telah dirancang untuk membuatnya mampu bekerja dengan masalah lintas sektor di
dalam Kerangka Spring. Setiap objek yang dibuat dan dikonfigurasi oleh wadah
dapat
Ôdengan menggunakan Spring AOP.
Kerangka Spring menggunakan Spring AOP internal untuk manajemen transaksi, keamanan,
akses remote, dan JMX .
Sejak versi 2.0 dari framework, Spring menyediakan dua pendekatan untuk konfigurasi AOP:
Untuk semua dari kerangka kerja yang didukung, Spring menyediakan fitur:
ÎÊ ðanajemen Sumber Daya - secara otomatis mendapatkan dan melepaskan sumber daya
database
ÎÊ Ä ception handling - menerjemahkan data yang berhubungan pengecualian akses ke sebuah
struktur mengakses data Spring
ÎÊ ransaksi partisipasi - partisipasi transparan dalam transaksi yang sedang berlangsung
ÎÊ Yesource membuka bungkusan - objek database mengambil dari kolam pembungkus
koneksi
ÎÊ Abstraksi untuk BLOB dan CLOB penanganan
Semua fitur ini akan tersedia bila menggunakan kelas ÔÔ yang disediakan oleh Spring
untuk setiap kerangka didukung. Kritik mengatakan bahwa kelas-kelas ÔÔ yang
mengganggu dan menawarkan keuntungan tidak lebih dari menggunakan (misalnya)
di Hibernate API .. langsung. [7] Sebagai tanggapan, para pengembang Spring telah
memungkinkan untuk menggunakan Hibernate dan JPA API langsung. Namun ini mengharuskan
manajemen transaksi transparan, sebagai kode aplikasi tidak lagi bertanggung jawab untuk
mendapatkan dan menutup sumber daya database, dan tidak mendukung terjemahan
pengecualian.
Bersama dengan manajemen transaksi Spring, data kerangka akses menawarkan abstraksi
fleksibel untuk bekerja dengan kerangka akses data. Kerangka Spring tidak menawarkan akses
data API umum, melainkan kekuatan penuh API yang didukung tetap utuh. Kerangka Spring
merupakan kerangka hanya tersedia di Jawa yang menawarkan akses data lingkungan dikelola di
luar server aplikasi atau kontainer. [ ]
Sedangkan menggunakan Spring untuk manajemen transaksi dengan Hibernate, biji berikut
mungkin harus dikonfigurasi
ÎÊ DataSource
seperti com.mchange.v2.c3p0.ComboPooledDataSource atau org.apache.commons.dbcp.Basi
cDataSource
ÎÊ SessionFactory
seperti org.springframework.orm.hibernate3.LocalSessionFactoryBean dengan atribut
DataSource
ÎÊ HibernateProperties seperti org.springframework.beans.factory.config.PropertiesFactoryBean
ÎÊ TransactionManager
seperti org.springframework.orm.hibernate3.HibernateTransactionManager dengan atribut
SessionFactory
Lain konfigurasi
ÎÊ bekerja dengan lokal dan transaksi global (transaksi lokal tidak memerlukan aplikasi server )
ÎÊ bekerja dengan transaksi bersarang
ÎÊ bekerja dengan safepoints transaksi
ÎÊ bekerja di hampir semua lingkungan dari platform Java
Sebagai perbandingan, JTA hanya mendukung transaksi nested dan transaksi global , dan
membutuhkan sebuah aplikasi server (dan dalam beberapa kasus juga penyebaran aplikasi pada
server aplikasi).
The Spring BoneCP / halaman Hibernate berisi contoh proyek penuh Spring digunakan bersama
dengan Hibernate.
ðodel Framework
Kerangka Spring fitur tersendiri MVC kerangka kerja, yang pada awalnya tidak
direncanakan. Para pengembang Spring memutuskan untuk menulis web mereka sendiri
kerangka sebagai reaksi terhadap apa yang mereka anggap sebagai desain miskin yang
populer Jakarta Struts framework web [8] , serta kekurangan dalam kerangka kerja yang tersedia
lainnya. Secara khusus, mereka merasa ada pemisahan cukup antara permintaan penanganan
lapisan dan presentasi, dan antara penanganan lapisan permintaan dan model. [9]
Seperti Struts, Spring MVC adalah suatu kerangka permintaan berbasis. Kerangka kerja ini
mendefinisikan strategi antarmuka untuk semua tanggung jawab yang harus ditangani oleh
kerangka permintaan berbasis modern. Tujuan dari setiap antarmuka harus sederhana dan jelas
sehingga mudah untuk Spring MVC pengguna untuk menulis implementasi mereka sendiri jika
mereka menginginkannya. MVC membuka jalan untuk kode end bersih depan. Semua antarmuka
yang terlepas dari Servlet API . Ini kopling ketat ke Servlet API dipandang oleh beberapa
sebagai kegagalan pada bagian dari pengembang Spring untuk menawarkan tingkat abstraksi
tinggi untuk aplikasi berbasis web [ ]. Namun, kopling ini memastikan bahwa fitur dari
Servlet API tetap tersedia untuk pengembang ketika menawarkan kerangka abstraksi tinggi
untuk kemudahan bekerja dengan kata API.
Kelas
ÔÔ Ô adalah front controller [10] kerangka dan bertanggung jawab untuk
mendelegasikan kontrol ke berbagai antarmuka selama tahap pelaksanaan sebuah permintaan
HTTP .
Yang paling penting interface didefinisikan oleh Spring MVC, dan tanggung jawab mereka,
tercantum di bawah ini:
Kemudahan menguji implementasi dari antarmuka ini tampaknya salah satu keuntungan penting
dari tingginya tingkat abstraksi yang ditawarkan oleh Spring MVC.
ÔÔ Ô adalah
terlepas dari Spring Inversi Control wadah untuk mengkonfigurasi web lapisan aplikasi. Namun,
aplikasi dapat menggunakan bagian lain dari Kerangka Spring-termasuk wadah-dan memilih
untuk tidak menggunakan Spring MVC.
Karena Spring MVC menggunakan wadah Spring untuk konfigurasi dan perakitan, berbasis
aplikasi web dapat mengambil keuntungan penuh dari Inversi Control fitur yang ditawarkan oleh
wadah.Kerangka ini memungkinkan untuk multilayering. Hal ini memungkinkan untuk kode
yang akan dipecah dan digunakan lebih efektif dalam segmen, sementara mengizinkan MVC
untuk melakukan pekerjaan. Hal ini memungkinkan untuk bolak-balik transmisi data. Beberapa
desain yang lebih linear tanpa membiarkan aliran depan dan belakang informasi. MVC ini
dirancang sangat baik untuk memungkinkan interaksi ini. Hal ini digunakan lebih dari sekedar
dalam desain web, tetapi juga dalam pemrograman komputer. Ini sangat efektif untuk desain
web. Pada dasarnya memungkinkan pengecekan dan sistem keseimbangan terjadi di mana
sebelum dilihat dapat diteliti.
Kerangka kerja ini juga menyediakan kesalahan-recovery (koneksi ulang otomatis setelah
kegagalan koneksi) dan beberapa sisi optimasi untuk menggunakan klien dari EJB sesi kacang
berkewarganegaraan terpencil.
Baik dan setup client untuk semua-gaya protokol RPC dan produk didukung oleh kerangka akses
Remote Spring (kecuali untuk Apache Axis dukungan) dikonfigurasi dalam wadah Core Spring.
Lalu akan muncul jendela baru untuk membuat project, beri nama sesuai keinginan lalu pilih
finish. Selanjutnya dapat kita lihat pada Project Explorer di sebelah kiri lembar kerja akan
terlihat folder project yang sudah dibuat. Klik folder tersebut dan akan terlihat branch / subfolder
dari folder sebelumnya. Klik kanan pada subfolder Web Content dan pilih New > JSP untuk
membuat file web java server page.
Setelah itu beri nama file jsp yang sudah kita buat, missal index.jsp. Lalu pada web content kita
dapat melihat file tersebut. Untuk menggunakan file tersebut dan merubah content / isi file
tersebut pilih file tersebut dan kita dapat melihat isi dari file tersebut di lembar kerja yang
terletak di tengah.
Setelah itu save dan Jalankan program tersebut dengan mengklik icon Run.
Maksud program di atas (Ë
"#$Ô %&!' ) adalah mencetak kalimat Hello
World pada Web Server yang akan kita buat.
Tag <% « %> adalah tag yang digunakan untuk mengidentifikasi bahwa yang kita ingin tulis
adalah program jsp. Dan out.print() merupakan parameter yang digunakan java untuk mencetak
apapun yang ada di dalam tanda kurung.
P PYYAð