Trace Id is missing
Lompati ke konten utama
Azure
Orang bekerja di depan layar laptop di kantor

Apa itu Java Spring Boot?

Pengantar Spring Boot—alat populer berbasis Java untuk pengembangan aplikasi web dan layanan mikro.

Seseorang menonton layar laptop serta menggunakan keyboard eksternal dan mouse

Apa itu Spring Boot?

Java Spring Boot adalah alat sumber terbuka yang memudahkan penggunaan kerangka kerja berbasis Java untuk membuat layanan mikro dan aplikasi web. Definisi Spring Boot berawal dari Java, yaitu salah satu bahasa pengembangan yang populer dan sangat banyak digunakan serta platform komputasi untuk pengembangan aplikasi. Pengembang di seluruh dunia memulai perjalanan pembelajaran penyusunan kode melalui Java. Fleksibel dan mudah digunakan, Java merupakan favorit pengembang untuk berbagai aplikasi, dari aplikasi media sosial, web, dan game hingga aplikasi jaringan dan perusahaan.

Java dan kerangka kerja Spring

Meskipun Java mudah digunakan dan lebih mudah dipelajari dibandingkan bahasa lainnya, tingkat kompleksitas untuk membangun, melakukan debug, dan menyebarkan aplikasi Java telah berkembang makin rumit. Ini karena banyaknya variabel eksponensial yang dihadapi pengembang modern ketika mengembangkan aplikasi web dan aplikasi seluler untuk teknologi modern umum seperti streaming musik atau aplikasi pembayaran tunai seluler. Pengembang yang menulis aplikasi lini bisnis dasar kini perlu menangani banyak pustaka, plugin, kesalahan log dan penanganan pustaka, integrasi dengan layanan web, serta banyak bahasa seperti C#, Java, HTML, dan lainnya. Dengan demikian, permintaan akan terus meningkat untuk alat yang menyederhanakan pengembangan aplikasi Java yang dapat menghemat waktu dan biaya pengembang.

Di sini lah peran kerangka kerja aplikasi, kumpulan besar kode yang ditulis sebelumnya yang dapat digunakan dan ditambahkan pengembang ke kodenya sendiri sesuai kebutuhan. Kerangka kerja ini meringankan beban pengembang untuk hampir semua kebutuhan dalam mengembangkan aplikasi seluler dan web ataupun menggunakan desktop dan API. Kerangka kerja membuat aplikasi lebih cepat, lebih mudah, dan lebih aman dengan menyediakan kode dan alat yang dapat digunakan ulang guna membantu menyatukan berbagai elemen proyek pengembangan perangkat lunak.

Di sinilah Spring berperan penting: Spring adalah proyek sumber terbuka yang memberikan pendekatan sederhana dan modular untuk membuat aplikasi dengan Java. Rangkaian proyek Spring  dimulai tahun 2003 sebagai tanggapan atas kompleksitas pengembangan Java awal dan memberikan dukungan untuk mengembangkan aplikasi Java. Nama Spring biasanya merujuk pada kerangka kerja aplikasi itu sendiri atau sekelompok proyek, atau modul. Java Spring Boot adalah satu modul spesifik yang dirancang sebagai tambahan kerangka kerja Spring.

Jadi, dengan latar belakang cara kerja kerangka kerja Spring, Spring Boot, dan Java secara bersamaan, berikut adalah definisi Spring Boot: alat yang menyederhanakan dan mempercepat pengembangan aplikasi web dan layanan mikro dalam kerangka kerja Java, yaitu Spring.

Terkadang, karena bahasa dan/atau platform adalah Java, alat ini disebut "Java Spring Boot," "kerangka kerja Java Spring," atau "kerangka kerja Spring Boot". Namun, karena ada kerangka kerja pihak ketiga lainnya untuk Java, seperti Play dan Hibernate, sebutan yang lebih akurat adalah "Spring" dan "Spring Boot".

Untuk pembahasan tingkat tinggi tentang dasar-dasar Java, baca artikel kami yang berjudul Apa itu Java?

Apa perbedaan antara Spring dan Spring Boot?

Seperti yang disebutkan sebelumnya, Spring adalah kerangka kerja aplikasi sumber terbuka dan berbasis Java yang menaungi banyak proyek lebih kecil. Beberapa proyek Spring lainnya yang populer antara lain Spring Data, Spring Cloud, dan Spring Security. Untuk memahami perbedaan antara Spring Boot vs. Spring, Anda perlu menyadari bahwa meskipun kemampuan intinya memiliki perbedaan, keduanya merupakan bagian dari Spring.

Untuk memahami perbedaan antara Spring dan Spring Boot sepenuhnya, kami perlu menjelaskan beberapa istilah utama terlebih dahulu.

Seseorang melihat ke laptop.
Seorang wanita melihat ke tablet.

Apa itu layanan mikro?

Layanan mikro adalah suatu pendekatan terhadap arsitektur pengembangan perangkat lunak. Kata "mikro" dalam layanan mikro merujuk pada kode yang dikirimkan dalam potongan (atau komponen) kecil yang dapat dikelola dan setiap "layanan" (atau fungsi inti) dibuat dan disebarkan secara independen dari layanan lainnya. Komponen independen tersebut bekerja sama dan berpindah-pindah melalui dokumen API yang ditentukan yang disebut kontrak. Ukurannya yang kecil dan isolasi relatif dari layanan mikro ini memiliki banyak keuntungan. Misalnya, karena jenis arsitektur ini terdistribusi dan memiliki hubungan renggang, seluruh aplikasi tidak putus jika ada komponen yang gagal. Keuntungan lainnya adalah produktivitas yang ditingkatkan, pemeliharaan yang lebih mudah, penyelarasan bisnis yang lebih baik, serta toleransi kegagalan yang lebih besar.

Apa itu injeksi dependensi?

Injeksi dependensi (DI) adalah teknik perancangan yang digunakan untuk mencapai inversi kontrol (IoC). Di pemrograman yang berorientasi objek seperti Java, objek yang bergantung pada objek lain disebut dependensi. Biasanya, objek penerima atau dependen disebut komputer klien dan objek yang bergantung pada komputer klien disebut layanan. Jadi, injeksi dependensi memberikan layanan ke komputer klien, atau "melakukan injeksi" dependensi menggunakan kode yang disebut injektor. Dengan DI, komputer klien tidak perlu menentukan layanan mana yang digunakan, semua dikerjakan oleh injektor.

Seseorang melihat ke laptop dan monitor
Seorang wanita mengenakan headset VR

Apa itu konvensi atas konfigurasi?

Konvensi atas konfigurasi, terkadang disebut penyusunan kode dengan konvensi, adalah konsep yang digunakan dalam kerangka kerja aplikasi untuk mengurangi keputusan yang harus dibuat pengembang. Hal ini mengikuti prinsip "tidak mengulang" agar tidak menulis kode yang sama berulang kali. Penyusunan kode dengan konvensi bertujuan untuk memelihara fleksibilitas selagi memungkinkan pengembang untuk menulis kode yang hanya untuk aspek nonkonvensional aplikasi yang dibuatnya. Jika perilaku aplikasi yang diinginkan cocok dengan konvensi yang dibuat, aplikasi akan berjalan hanya secara default tanpa harus menulis file konfigurasi. Pengembang hanya perlu menulis file konfigurasi secara eksplisit jika perilaku yang diinginkan menyimpang dari "konvensi".

Kerangka kerja Spring vs. Spring Boot

Karena Spring Boot dibuat berdasarkan keuntungan kerangka kerja Spring, ini bukan persoalan pertanyaan "antara" Spring vs. Spring Boot, tetapi keuntungan "keduanya". Ini bukan soal Spring vs Spring Boot; Spring dan Spring Boot saling berkaitan:
paket dukungan berskala organisasi
Spring Spring Boot
Apa itu?

Kerangka kerja aplikasi web sumber terbuka berbasis Java.

Ekstensi atau modul yang dibuat pada kerangka kerja Spring.

Apa fungsinya?

Menghadirkan lingkungan yang fleksibel dan dapat dikonfigurasi sepenuhnya menggunakan alat dan pustaka kode yang dibuat sebelumnya untuk membuat aplikasi web khusus yang memiliki hubungan renggang.

Menghadirkan kemampuan untuk membuat aplikasi Spring mandiri yang dapat langsung dijalankan tanpa perlu anotasi, konfigurasi XML, atau menulis banyak kode tambahan.

Kapan sebaiknya digunakan?

Gunakan Spring jika Anda ingin:

  • Fleksibilitas.
  • Pendekatan segala arah.*
  • Menghapus dependensi dari kode khusus Anda.
  • Menerapkan konfigurasi yang sangat unik.
  • Mengembangkan aplikasi perusahaan.

Gunakan Spring Boot jika Anda ingin:

  • Kemudahan penggunaan.
  • Pendekatan satu arah.*
  • Mendapatkan aplikasi berkualitas yang berjalan dengan cepat dan mengurangi waktu pengembangan.
  • Menghindari penulisan kode boilerplate (berulang) atau mengonfigurasi XML.
  • Mengembangkan REST API.
Apa fitur utamanya?

Injeksi dependensi

Konfigurasi otomatis

Apakah memiliki server yang disematkan?

Tidak. Di Spring, Anda harus menyiapkan server secara eksplisit.

Ya, Spring Boot dilengkapi dengan server HTTP bawaan seperti Tomcat dan Jetty.

Seperti apa konfigurasinya?

Kerangka kerja Spring memberikan fleksibilitas, tetapi konfigurasinya harus dibuat secara manual.

Spring Boot mengonfigurasi Spring dan kerangka kerja pihak ketiga lainnya secara default berdasarkan prinsip "konvensi atas konfigurasi".

Apakah saya perlu tahu cara menggunakan XML?

Di Spring, pengetahuan tentang konfigurasi XML diperlukan.

Spring Boot tidak memerlukan konfigurasi XML.

Apakah ada alat CLI untuk mengembangkan atau menguji aplikasi?

Kerangka kerja Spring itu sendiri tidak menyediakan alat CLI untuk mengembangkan atau menguji aplikasi.

Sebagai modul Spring, Spring Boot memiliki alat CLI untuk mengembangkan dan menguji aplikasi berbasis Spring.

Apakah ini berfungsi dari pendekatan satu arah atau segala arah?

Segala arah*

Satu arah*

*Pendekatan kerangka kerja satu arah vs. segala arah

Meskipun kata "satu arah" (opinionated) terdengar agak negatif, pendekatan satu arah Spring Boot dan kerangka kerja Spring segala arah (unopinionated) memiliki keuntungan.

Pendekatan satu arah

Pendekatan satu arah terletak pada adanya satu cara yang secara signifikan lebih mudah dari yang lainnya. Dari sudut pandang rancangan, perangkat lunak ini membatasi perancang, mendorong mereka agar melakukan hal dengan cara yang ditentukan tersebut.

Hal ini memberikan arah yang benar, suatu praktik terbaik yang akan berfungsi bagi sebagian besar orang di sebagian besar situasi. Aplikasi ini ditulis dengan berpegang teguh pada praktik terbaik dan konvensi yang sangat luas. Pendekatan satu arah membuat kolaborasi dan perolehan bantuan dengan proyek penyusunan kode jauh lebih mudah. Pengembang lainnya yang memiliki pengalaman dengan kerangka kerja tersebut akan segera mengenali aplikasi baru dan dapat langsung terlibat.

Pendekatan segala arah

Pendekatan segala arah diterapkan jika semua solusi kira-kira memerlukan upaya atau kompleksitas yang sama. Ini terletak pada tidak ada cara yang benar untuk mendapatkan solusi terhadap suatu masalah. Namun, pendekatan ini memberikan alat fleksibel yang dapat digunakan untuk mengatasi masalah dengan banyak cara. Kerangka kerja segala arah memiliki keuntungan memberikan banyak fleksibilitas dalam pengembangan dan lebih membebaskan pengembang. Kelemahan utama dengan banyaknya fleksibilitas adalah pengembang membuat keputusan yang lebih banyak dan mungkin harus menulis lebih banyak kode karena kerangka kerjanya memiliki banyak kemungkinan dan tentunya ke segala arah.

Fitur dan keuntungan Spring Boot

Terakhir, bagian menariknya, kemampuan inti yang diberikan Java Spring Boot melebihi kerangka kerja Spring. Spring Boot memberikan cara yang lebih mudah dan lebih cepat untuk menyiapkan, mengonfigurasi, dan menjalankan aplikasi. Hal ini menyingkirkan konfigurasi sulit yang memerlukan penyiapan sebagian aplikasi berbasis Spring. Pengembang dapat langsung menggunakan Spring Boot tanpa harus mempelajari kerangka kerja Spring yang mendasar.

Seseorang duduk di kursi dan menonton di layar desktop

Berikut cara fitur Boot Spring membantu menyederhanakan tugas pemrograman Java. Beberapa fitur utama Spring Boot adalah:

Keuntungan Spring Boot

Spring Boot:

Tutorial Java Spring Boot

Jika sudah terbiasa dengan aplikasi build menggunakan kerangka kerja Spring, Anda mungkin tidak akan kesulitan mempelajari tutorial, proyek pemula, dan dokumentasi Spring Boot yang disediakan di bagian ini. Namun, jangan khawatir jika Anda belum tahu kerangka kerjanya dan ingin langsung menggunakan Spring Boot. Anda dapat mempelajari Spring Boot (dan mulai menggunakannya) sebelum mempelajari kerangka kerja Spring, karena Anda akan melihat banyak dasar kerangka kerja seiring waktu. Meskipun Anda tidak akan mengetahui semua tentang kerangka kerja, cara ini akan memberi Anda permulaan yang baik jika ingin mempelajarinya nanti.

Selain membuat pengembangan aplikasi jauh lebih cepat dan lebih efisien, keuntungan lain dari mempelajari Spring Boot juga membantu Anda dalam menggunakan kemampuan Spring lainnya, yaitu Spring Data, Project Reactor, dan Spring Security.

Seseorang berbicara melalui laptop menggunakan headphone
Dengan demikian, Anda akan lebih cepat mempelajari tutorial Spring Boot pertama Anda jika mempelajari cara kerja konsep dasar injeksi dependensi dan inversi kontrol terlebih dahulu di kerangka kerja Spring. Berikut adalah ringkasan tingkat tinggi:

Injeksi dependensi

  • Berbasis XML, yaitu <beans/> dan <namespace:*/>.
  • Berbasis anotasi, yaitu @Component, @Autowired, @Inject.
  • Berbasis Java, yaitu kelas @Configuration, metode @Bean.

Inversi kontrol (Inversion of Control/IoC)

  • ApplicationContext; antarmuka root yang melayani sebagai kontainer Spring IoC.
  • BeanFactory; antarmuka untuk mengakses kontainer Spring.
  • Beans; objek dibuat menjadi instans, dirakit, dan dikelola oleh ApplicationContext.

Tutorial Java Spring Boot untuk pemula

Setelah menguasai dasarnya, jika ingin membangun dan menyebarkan aplikasi Spring Boot dalam skala besar, pertimbangkan untuk melihat layanan Azure Spring Cloud yang dikelola sepenuhnya dari Microsoft dan VMware. Atau, langsung mulai menggunakan tutorial ini tentang cara mengamankan aplikasi Spring Boot Anda dengan sertifikat TLS/SSL.

Buat dan bantu amankan aplikasi Java

Buat aplikasi Java dengan Spring Initializr menggunakan starter Spring Boot untuk Microsoft Entra ID (sebelumnya Azure Active Directory).

Sebarkan aplikasi pertama ke Azure Spring Cloud

Pelajari cara membuat, menyediakan, dan memantau aplikasi Spring Boot sederhana yang dibangun menggunakan Spring Initializr.

Bangun layanan mikro Spring Boot sederhana

Buat dan sebarkan layanan mikro sederhana, lalu belajar menambahkan teknologi Spring Cloud ke dalamnya.

Lainnya dari starter Spring Boot

Tambahkan fitur penyimpanan, keamanan, autentikasi, dan brankas kunci ke aplikasi Spring Boot Anda.

FAQ

  • Spring Boot adalah kerangka kerja web Java berbasis sumber terbuka yang ditawarkan oleh Spring, secara khusus berguna bagi teknisi perangkat lunak yang mengembangkan aplikasi web dan layanan mikro.

  • "Spring Boot di Java" adalah sebutan lain dari "Java Spring Boot"; kedua istilah ini dapat digunakan secara bergantian. Java adalah bahasa dan platform, Spring adalah kerangka kerja aplikasi berbasis Java, dan Spring Boot adalah ekstensi kerangka kerja Spring, dengan beberapa keuntungan tambahan.

  • Spring Boot memiliki fungsionalitas kerangka kerja umum Spring, tetapi Spring Boot tidak mengharuskan Anda untuk mempelajari Spring. Pengembang dapat mengaktifkan dan menjalankan aplikasi dengan waktu yang lebih sedikit karena atribut Spring Boot dikonfigurasikan secara otomatis dan pendekatan satu arah meniadakan banyak kode boilerplate dan konfigurasi yang terlibat dengan pengembangan dan penyebaran aplikasi Spring.

  • Ya, seperti sebelumnya, Spring Boot secara khusus sangat berguna untuk pendekatan layanan mikro terhadap arsitektur pengembangan perangkat lunak. Layanan mikro adalah cara populer untuk membangun tim yang kecil dan otonom yang dapat bekerja secara independen, dan sesuai sifatnya, layanan mikro hanya berfungsi di backend.

  • Pengurangan waktu pengembangan, peningkatan produktivitas, dan kemudahan penggunaan hanyalah sebagian kecil dari keuntungan mengembangkan aplikasi Spring Boot.

  • Ada banyak tutorial, mulai cepat, dan dokumentasi mengenai situs web Spring serta Dokumentasi dan Starter Spring Boot dari Microsoft Azure. Jika Anda ingin langsung memulai penyebaran aplikasi Spring Boot, lihat seminar web, Accelerate Spring Boot Applications to Cloud at Scale.

Buat akun gratis Azure Anda kapan saja