Mengapa Spring Framework?

Eko Kurniawan Khannedy
idspring
Published in
4 min readJun 7, 2017

Yup, mengapa Spring Framework? Kenapa harus belajar Spring Framework? Kenapa tidak belajar alternatif teknologi lain seperti Java Enterprise Edition atau mungkin Play Framework?

Spring Framework vs Play Framework

Jika kita bandingkan Spring Framework dengan Play Framework, berarti kita tidak membandingkan apple to apple. Play Framework adalah framework untuk membuat Web sedangkan Spring Framework adalah core support untuk dependency injection. Yang dalam artian, sebenarnya jika kita membuat aplikasi menggunakan Play Framework, kita bisa memasukkan Spring Framework didalamnya.

Spring Framework vs Java Enterprise Edition

Spring Framework sendiri pertama kali dibuat oleh Rod Johnson tahun 2002 sebagai alternatif dari Java Enterprise Edition. Jadi memang Spring Framework secara tidak langsung dibuat sebagai pesaing Java Enterprise Edition.

Google Trends : Spring Framework vs Java Enterprise Edition

Jika dilihat dari Google Trends, popularitas Java Enterprise Edition dari hari ke hari semakin menurun dibanding Spring Framework. Yup, saya sendiri dulu penggunakan Java Enterprise Edition, namun sudah beralih total ke Spring Framework.

The Good Part

Sekarang mari kita bahas, apa hal-hal yang bagus di Spring Framework, sehingga Spring Framework ini sangat penting untuk dipelajari.

Mature

Spring Framework dibuat sejak tahun 2002, itu artinya udah berumur sekitar 15 tahun (sampai 2017). Dan memang framework ini sudah mature sekali, sudah proven dan sudah tidak bisa dipungkiri, sudah banyak sekali berjalan di aplikasi-aplikasi besar di production.

Rata-rata framework yang sudah uzur biasanya digantikan oleh framework yang baru. Namun berbeda dengan Spring Framework, walaupun framework itu bisa dibilang sudah lama, tapi framework ini tetap selalu menjadi hits di dunia Java. Salah satu asalannya adalah, karena framework ini opensource sehingga semua orang bisa berkontribusi untuk meningkatkan framework Spring.

Lightweight

Jika dibandingkan dengan Java Enterprise Edition, Spring Framework sangatlah ringan. Kita tidak perlu menunggu puluhan menit untuk restart Enterprise Application hanya untuk mendeploy ulang aplikasi kita. Spring Framework bisa jalan walaupun hanya di aplikasi web server seperti Tomcat atau Jetty.

Bahkan semenjak hadirnya Spring Boot, orang-orang semakin menyukai menggunakan Spring Framework karena web servernya bisa di embed dalam single jar, sehingga untuk menjalankan aplikasinya kita tidak perlu mendeploy ke web server lagi.

Artinya dengan resource hardware yang lebih kecil dan lebih produktif, kita bisa mendapatkan manfaat yang sama, bahkan lebih baik dibandingkan menggunakan Java Enterprise Edition.

Supported Framework

Spring Framework sebenarnya bukanlah framework untuk menggantikan framework-framework yang lain, justru tujuan utama Spring Framework adalah sebagai fondasi untuk framework-framework yang lain. Spring Framework sendiri mendukung dan didukung oleh framework-framework yang sudah mature lainnya, seperti Hibernate, AspectJ, Bean Validation, JPA, Hystrix, OpenFeign, RxJava dan lain-lain.

Oleh karena itu, saat kita menggunakan Spring Framework sebagai fondasi aplikasi yang akan kita buat, maka akan banyak sekali framework mature yang bisa kita gunakan dengan mudah, bahkan kita juga bisa dengan mudah mengintegrasikan framework lain secara manual.

Backward Compatible

Hal yang patut diacungi jempol dari Spring Framework adalah, backward compatible. Sejak pertama kali Spring Framework rilis menggunakan konfigurasi XML sampai sekarang yang lebih popular menjadi konfigurasi Annotation. Spring Framework selalu backward compatible.

Walaupun umurnya yang sudah terbilang lama, tapi karena dari awal desain API Spring Framework sangat bagus, dia selalu bisa menjaga backward compatible, bandingkan dengan framework seperti Play Framework (tiap ganti versi, selalu rewrite framework) atau framework-framework yang lainnya.

Good API Design

Coba sekali-kali Anda clone project Spring Framework, lalu obok-obok source code nya. Anda akan lihat kalo API Design Spring Framework sangatlah bagus. Dia sangat mudah untuk di extends, bahkan jika kita ingin mengintegrasikan framework lain, itupun sangat mudah.

Di tempat saya kerja, saya biasa membuat plugin untuk Spring Framework, terutama plugin untuk hal-hal yang harus kita ulangi di tiap project, misal membuat Version Tracker Plugin, Web Mandatory Parameter Plugin, Event Log Plugin dan lain-lain. Dengan mudahnya membuat plugin untuk Spring Framework, kita hanya perlu menambahkan dependency ke project, dan secara otomatis plugin yang kita buat akan jalan.

Spring Ecosystem

Spring Framework adalah fondasi dari Spring Ecosystem-nya. Pernah dengar tentang Spring Boot? Spring Cloud? dan Spring Data? Yup, itu adalah framework-framework lain yang di develop diluar core Spring Framework nya itu sendiri.

Saat ini dari Spring Framework, sudah banyak dikembangkan framework pendukung lainnya seperti yang bisa dilihat di halaman https://spring.io/projects. Sehingga menggunakan Spring Framework, akan mempermudah lagi dalam membuat aplikasi, saat ini yang menurut saya sangat membantu sekali adalah Spring Boot, Spring Data dan Spring Cloud.

Masih banyak framework-framework pendukung ekosistem Spring lainnya seperti Spring Session, Spring Mobile, Spring Security, Spring Batch, Spring Stream dan lain-lain.

The Bad Part

Memang tidak ada semua framework yang tidak memiliki kekurangan, begitu juga dengan Spring Framework.

No Standard

Berbeda dengan Java Enterprise Edition yang dibuat standarisasinya. Spring Framework tidak memiliki standard. Jika kita develop aplikasi sesuai spesifikasi Java Enterprise Edition, biasanya kita bisa dengan mudah ganti Application Server-nya, misal JBoss, Glassfish, Webspere dan lain-lain.

Tapi tidak dengan Spring Framework, karena memang Spring Framework itu tidak memiliki standard, jadi sekali kita menggunakan Spring, maka selamanya aplikasi kita harus menggunakan Spring. Jika ingin ganti teknologi, maka kita harus rewrite lagi aplikasi kita.

Fast Updates.

Jika diperhatikan update Java Enterprise Edition itu rentannya sekitar 3–5 tahun sekali. Tapi kalo Spring Framework? Bisa jadi tiap hari selalu ada update terbaru.

Jadi dengan menggunakan Spring Framework, berarti Anda harus sudah menerima kalo Anda selalu harus selalu update informasi seputar Spring Framework, karena mungkin tiap hari akan ada update Spring Framework terbaru.

Tapi tidak perlu khawatir, karena perubahan terbaru Spring Framework tidak akan mem-break fitur yang telah berjalan.

Spring Framework di Indonesia

Sekarang pertanyaannya, apakah setimpal belajar Spring Framewok, terutama di Indonesia. Oke, percaya atau tidak, saat ini di Indonesia, hampir semua lowongan kerja untuk Java Engineer selalu mensyaratkan menguasai Spring Framework.

Yup, salah satunya di tempat saya bekerja saat ini, Spring Framework adalah framework yang sudah menjadi standard dalam pembuatan project, 100% project Java sudah dipastikan menggunakan Spring Framework.

Jadi apakah setimpal belajar Spring Framework? Yup sudah pasti, terutama untuk Java Engineer.

Referensi

Best Regards.
Eko Kurniawan Khannedy

--

--