Introduction to Spring

Sekilas tentang Spring Framework

Spring Framework adalah Fullstack Web Framework yang dikembangkan oleh Pivotal menggunakan bahasa bahasa JVM (seperti Java, Kotlin dan Groovy).

Spring sendiri telah mengalami evolusi sampai beberapa kali, diantara lain :

  • Spring MVC. Aplikasi spring edisi ini untuk masih dikonfigurasi secara manual, sehingga dalam development masih lambat. Web Server juga masih terpisah sehingga harus di deploy secara manual.
  • Spring MVC yang di wrap dengan Spring Boot. Dengan adanya Spring Boot, setup project menjadi lebih cepat dan mudah. Web server juga sudah di embed sehingga tidak perlu di deploy secara manual. Secara default menggunakan Tomcat Web Server.
  • Spring Webflux yang di wrap dengan Spring Boot. Spring Webflux menawarkan Reactive Programming yang Non Blocking. Web Server default diganti dengan netty yang lebih leightweight. Sehingga performa dari aplikasi spring dapat meningkat.

Sejauh ini secara pribadi spring merupakan framework paling lengkap yang pernah saya temui. Spring dapat mengatasi permasalahan mulai dari masalah REST API sampai Microservice.

Framework ini merupakan compiled framework karena dalam menjalankannya harus di compile terlebih dahulu. Oleh karena itu Spring memiliki performa yang lumayan bagus. Saya pernah melakukan benchmark menggunakan wrk untuk melakukan hit API mendapatkan hasil sekitar 30.000an request per detik. Lebih detailnya dapat di cek di Laman Berikut.

Walaupun memiliki performa yang lumayan, framework ini memiliki waktu startup yang relatif lama, sekitar 10 detik lebih. Sehingga apabila anda memiliki RAM lebih saya menyarankan menggunakan build tool Gradle daripada Maven untuk mempercepat proses kompilasi.

Roadmap Belajar Spring

Berikut sekilas peta jalan yang dapat anda pelajari untuk dapat membuat aplikasi spring. Happy Coding :D.

1. Setup Project Spring Boot

2. Membuat Web pada Spring Boot menggunakan Template Engine

2.1. Berkenalan dengan Template Engine Thymeleaf
2.1. Membuat Aplikasi CRUD menggunakan Spring Boot, Spring Data dan Thymeleaf

3. Membuat REST API pada Spring Boot

3.1. Membuat REST API Sederhana
3.2. Membuat REST API dengan Spring Boot dan Spring Data JPA
3.3. Membuat REST API dengan Spring Boot dan Spring Data MongoDB

4. Mengamankan Aplikasi Spring Boot

4.1. Basic Auth In Memory
4.2. Basic Auth Database
4.3. OAuth2
4.4. JWT

5. [Reactive] Membuat REST API pada Spring Boot

5.1. Membuat REST API Sederhana
5.2. Membuat REST API dengan Spring Boot dan Spring Data JPA
5.3. Membuat REST API dengan Spring Boot dan Spring Data MongoDB

6. [Reactive] Mengamankan Aplikasi Spring Boot

6.1. Basic Auth In Memory
6.2. Basic Auth Database

7. Membuat Mail Server

8. Membuat Report menggunakan Jasper Report

9. Database Migration menggunakan FlywayDB

9. API documentation menggunakan Swagger2

7. Membuat Microservice dengan Spring Cloud

Bagikan