Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Spring adalah framework pengembangan aplikasi paling populer untuk Java enterprise. Jutaan pengguna menggunakan Framework Spring untuk membuat kode yang memiliki performa tinggi, gampang diuji dan dapat digunakan ulang.
Framework Spring adalah sebuah platform Java open source dan awalnya ditulis oleh Rod Johnson serta pertama kali dirilis dibawah lisensi Apache 2.0 pada bulan Juni 2003
Spring ringan dalam hal ukuran dan transparansi. Versi dasar framework ini hanya berukuran 2 MB.
Fitur utama Framework Spirng dapat digunakan untuk pengembangan aplikasi Java apapun, tetapi ada extension untuk mengembangkan aplikasi web diatas platform Java EE. Framework Spring menargetkan pengembangan J2EE lebih mudah untuk digunakan dan mempromosikan praktek pemrogramman yang baik dengan mengaktifkan model pemrogramman berbasis POJO.
Keuntungan Penggunaan Framework Spring
- Spring membuat pengembang dapat membangun aplikasi enterprise menggunakan POJO. Keuntungan hanya menggunakan POJO adalah kita tidak perlu produk kontainer EJB seperti sebuah server aplikasi, tetapi kita memiliki opsi dengan hanya menggunakan kontainer servlet yang robus seperti Tomcat atau produk komersial yang sejenis.
- Spring terorganisir dalam gaya modular. Meskipun sejumlah paket dan class bersifat substansial, kita hanya perlu memikirkan yang kita butuhkan saja dan dapat mengabaikan yang lainnya.
- Spring tidak melakukan perubahan keseluruhan, dia hanya melakukan penggunaan teknologi yang sudah ada seperti beberapa framework ORM, framework logging, JEE Quartz dan timer JDK serta teknologi view yang lain.
- Menguji sebuah aplikasi yang ditulis menggunakan Spirng sangat sederhana karena kode yang bergantung-environment dipindahkan ke dalam framework ini. Lebih jauh, dengan menggunakan POJO bergaya JavaBean, menjadikannya lebih mudah untuk menggunakan dependency injection untuk menyuntikkan data pengujian.
- Framework web Srping adalah sebauh framework MVC web yang dirancang dengan baik, menyediakan alternatif yang luar biasa bagi framework seperti Struts atau framework lain yang populer.
- Spring menyediakan API yang nyaman untuk menerjemahkan eksepsi yang spesifik untuk teknologi tertentu (JDBC, Hibernate atau JDO misalnya) ke dalam eksepsi yang konsisten.
- Kontainer IoC yang ringan, terutama jika dibandingkan dengan kontainer EJB. Hal ini memberikan keuntungan dalam pengembangan dan deploy aplikasi pada komputer dengan memori dan sumber daya CPU yang terbatas.
- Spring menyediakan antarmuka manajemen transaksi yang konsisten dan dapat dikecilkan ke dalam suatu transaksi lokal (penggunaan database tunggal misalnya) dan dapat juga menangani skala besar (misalnya menggunakan JTA)
Dependency Injection (DI):
Teknologi yang paling dikenal di Spring adalah Dependency Injection (DI) yang terasa seperti Inversion of Control. Konsep utamanya adalah Inversion of Control, dan dapat diekpresikan ke dalam banyak cara yang berbeda dan dan Dependency Injection adalah salah satu contoh kongkrit dari Inversion of Control.
Saat menulis aplikasi Java yang kompleks, class-class aplikasi seharusnya dibuat se-independen mungkin dari class-class Java untuk meningkatkan kemungkinan penggunaan ulang class-class tersebut serta untuk mengujui mereka secara independen dari class-class lain saat melakukan testing unit. Dependency Injection membantu merekatkan class-class ini satu sama lain dan pada saat yang sama membuat mereka tetap independen.
Jadi apa sesungguhnya Dependency Injection ? Mari kita lihat dua kata tersebut secara terpisah. Disini dependency diterjemahkan ke dalam asosiasi antara dua class. Misalnya, class A bergantung pada class B. Sementara, bagian kedua, yakni injeksi berarti bahwa class B akan diinjeksikan ke class A oleh IoC.
Dependency injection dapat terjadi dengan cara melewatkan parameter-parameter ke konstruktor atau dengan post-construction menggunakan metode setter. Dependency Injection adalah jantung Framework Spring, sehingga kita akan menjelaksan ini dalam bagian terpisah dengan contoh tersendiri.
Aspect Oriented Programming (AOP):
Salah satu komponen kunci di Spring adalah framework Aspect oriented programming (AOP) framework. Fungsi yang menyertakan beberapa point pada suatu aplikasi disebut cross-cutting concerns yang secara konseptual terpisah dari logika bisnis aplikasi. Ada beberapa contoh yang bagus untuk aspek ini termasuk logging, declarative transactions, security, caching dll.
Kunci unit modularitas dalam OOP adalah class, sementara unit modularitas di AOP adalah aspek. Jikalau DI membantu anda melakukan pemisahan pada objek-objek aplikasi satu sama lain, maka AOP membantu kita melakukan pemisahan cross-cutting concern dari objek-objek yang terpengaruh.
Modul AOP pada Framework Spring menyediakan implementasi pemrogramman berorientasi aspek yang membuat kita dapat menentukan method-interceptor dan pointcut untuk secara bersih memisahkan kode yang mengimplementasikan fungsionalitas yang seharusnya dipisahkan. Kita akan membahas lebih jauh tentang AOP ini di bagian yang lain.
Bersambung insya Allah
Leave a Reply