Anda di halaman 1dari 12

c  


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

Pengendalian kontainer pnversi


Pusat dari Spring Framework adalah perusahaan Inversi Control kontainer, yang menyediakan
sarana yang konsisten mengkonfigurasi dan mengelola objek Java
menggunakan callback . Wadah bertanggung jawab untuk mengelola siklus hidup objek:
membuat objek, memanggil metode inisialisasi, dan mengkonfigurasi objek dengan kabel
mereka bersama-sama.

Obyek yang dibuat dengan wadah juga disebut


Ô  Ô atau Ô  Biasanya, wadah
dikonfigurasi dengan memuat file XML yang berisi Ô  Ô yang memberikan informasi
yang diperlukan untuk membuat biji.

Objek dapat diperoleh dengan cara ÔÔ    Ô   atau ÔÔ   


Ô . ÔÔ     adalah pola dimana penelpon meminta objek wadah untuk
sebuah objek dengan nama tertentu atau jenis tertentu. Ô  ÔÔ   pola di mana
kontainer melewati objek dengan nama ke objek lain, baik melalui konstruktor , properti,
atau metode pabrik .

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.

Aspek pemrograman berorientasi framework


Kerangka Spring memiliki sendiri AOP framework yang modularizes -potong kekhawatiran
lintas di aspek . Motivasi untuk membuat kerangka AOP terpisah berasal dari keyakinan bahwa
akan ada kemungkinan untuk menyediakan fitur dasar AOP tanpa kerumitan terlalu banyak baik
dalam implementasi, desain, atau konfigurasi. Kerangka SpAOP juga mengambil keuntungan
penuh dari Spring Container.

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:

ÎÊ skema berbasis pendekatan.


ÎÊ o Gaya anotasi AspectJ berbasis.
Tim Spring memutuskan untuk tidak memperkenalkan baru AOP-istilah yang terkait, sehingga
dalam dokumentasi referensi Spring dan API, istilah-istilah seperti aspek , bergabung dengan
titik , saran, pointcut , pengenalan, objek target ( object disarankan ), AOP proxy , dan menenun
semua memiliki arti yang sama seperti di sebagian besar kerangka AOP lain
(khususnya AspectJ ).

Akses Data Framework


Data kerangka akses Spring's alamat umum kesulitan pengembang hadapi ketika bekerja dengan
database pada aplikasi. Dukungan diberikan untuk semua kerangka akses data yang populer di
Jawa:JDBC , iBATIS , Hibernate , JDO , JPA , Oracle TopLink , Apache OJB , dan Apache
Cayenne , antara lain.

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

ÎÊ AOP konfigurasi poin pemotongan menggunakan <aop:config>


ÎÊ Transaksi semantik nasihat AOP menggunakan <tx:advice>

ðanajemen ransaksi Œerja Framework


Kerangka pengelolaan transaksi Spring's membawa mekanisme abstraksi untuk platform
Java. abstraksi adalah mampu:

ÎÊ 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).

Spring Framework sebuah kapal      Ô untuk sejumlah strategi


manajemen transaksi:

ÎÊ Transaksi dikelola pada JDBC = Ô 


ÎÊ Transaksi berhasil di -relasional pemetaan Obyek  Ô
ÎÊ Transaksi dikelola melalui     Ô JTA dan  Ô  
ÎÊ Transaksi dikelola pada sumber daya lainnya, seperti objek database
Di samping mekanisme kerangka abstraksi juga menyediakan dua cara untuk menambahkan
manajemen transaksi ke aplikasi:

ÎÊ Programnya, dengan menggunakan's    Ô Ô Spring


ÎÊ Configuratively, dengan menggunakan metadata seperti XML atau Java 5 anotasi
Bersama dengan kerangka akses data's Spring - yang mengintegrasikan kerangka kerja
manajemen transaksi - itu adalah mungkin untuk membuat sebuah sistem transaksi melalui
konfigurasi tanpa harus bergantung pada JTA atau EJB . Kerangka transaksional juga terintegrasi
dengan pesan dan caching mesin.

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:

ÎÊ HandlerMapping: memilih objek yang akan menangani permintaan masuk (menangani)


berdasarkan pada setiap atribut atau kondisi internal atau eksternal kepada mereka
permintaan
ÎÊ HandlerAdapter: pelaksanaan objek yang akan menangani permintaan masuk
ÎÊ Controller: datang antara Model dan View untuk mengelola permintaan masuk dan redirect
untuk respon yang tepat. Ini pada dasarnya adalah seperti sebuah gerbang yang mengarahkan
informasi yang masuk. Menghidupkan antara pergi ke dalam model atau melihat.
ÎÊ Lihat: bertanggung jawab untuk mengembalikan respon ke klien. Hal ini dimungkinkan
untuk pergi langsung ke tampilan tanpa pergi ke bagian model. Hal ini juga memungkinkan
untuk melewati ketiga.
ÎÊ ViewResolver: memilih Lihat berdasarkan nama logis untuk melihat (gunakan tidak benar
dibutuhkan)
ÎÊ HandlerInterceptor: intersepsi permintaan masuk sebanding tetapi tidak sama
dengan Servlet filter (gunakan merupakan opsional dan tidak dikendalikan
oleh
 ÔÔ Ô!
ÎÊ LocaleResolver: menyelesaikan dan secara opsional menyimpan dari lokal dari pengguna
individu
ÎÊ MultipartResolver: memfasilitasi bekerja sama dengan upload file dengan pembungkus
permintaan masuk
Setiap strategi interface diatas memiliki tanggung jawab yang penting dalam kerangka
keseluruhan. Abstraksi yang ditawarkan oleh antarmuka ini adalah kuat, sehingga
memungkinkan untuk satu set variasi dalam implementasi mereka, Spring MVC kapal dengan
implementasi dari semua antarmuka ini dan bersama-sama menawarkan fitur set di atas Servlet
API . Namun, pengembang dan vendor bebas untuk menulis implementasi lainnya. Spring MVC
menggunakan Java java.util.Map antarmuka berorientasi sebagai abstraksi data
untuk Ô mana kunci diharapkan akan nilai-nilai string.

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.

Akses Yemote Framework


Spring's kerangka Remote Access adalah sebuah abstraksi untuk bekerja dengan teknologi RPC
berbasis yang tersedia pada platform Java baik untuk konektivitas klien dan mengekspor benda-
benda di server. Yang penting Fitur yang paling ditawarkan oleh framework ini adalah untuk
mempermudah konfigurasi dan penggunaan teknologi ini sebisa mungkin dengan
menggabungkan Inversi Pengendalian dan AOP .

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.

Spring menyediakan dukungan untuk protokol-protokol dan produk di luar kotak:


ÎÊ üP berbasis protokol
ÎÊ Hessian : serialisasi biner protokol, open-source dan dipelihara oleh CORBA berbasis
protokol-
ÎÊ RMI (1): Metode pemanggilan menggunakan infrastruktur RMI belum spesifik untuk
Spring
ÎÊ RMI (2): Metode pemanggilan menggunakan antarmuka RMI sesuai dengan penggunaan
RMI biasa
ÎÊ RMI-IIOP ( CORBA ): pemanggilan metode menggunakan RMI-IIOP/CORBA
ÎÊ Änterprise Javarean integrasi klien
ÎÊ Lokal EJB stateless sesi kacang konektivitas: menghubungkan ke lokal kacang sesi
berkewarganegaraan
ÎÊ Remote EJB stateless sesi kacang konektivitas: menghubungkan ke remote kacang sesi
berkewarganegaraan
ÎÊ SAP
ÎÊ Integrasi dengan Apache Axis layanan web framework
Apache CXF menyediakan integrasi dengan Spring Framework untuk RPC-style mengekspor
objek pada sisi server.

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.

Ada alternatif implementasi open-source ( Cluster4Spring ) dari suatu subsistem Remoting


dimasukkan ke dalam Spring Framework yang dimaksudkan untuk mendukung berbagai skema
Remoting (1-1, 1-banyak, layanan dinamis menemukan).
¢pŒA PYYAð
Berikut adalah contoh pembuatan Aplikasi Java EE dengan menggunakan eclipse. Pertama ±
tama buka aplikasi eclipse terlebih dahulu. Lalu pilih File > New > Dynamic Web Project atau
dapat juga dengan memilih icon New Project > Dynamic Web Project seperti gambar di bawah
ini :

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.

Masukkan program berikut di antara tag <body> :

<% out.print(³Hello World´); %>

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ð

Anda mungkin juga menyukai