Yuk Belajar Spring Boot!
Bismillah,
Pada kesempatan kali ini saya akan menuliskan artikel tentang Spring Boot karena setelah beberapa lama tidak menulis lagi karena ada urusan kampus. Spring Boot merupakan framework yang sangat penting dipelajari apalagi Anda ingin menjadi seorang maniac Java, jika pada pada postingan lalu saya sering membahas hibernate seharusnya setelah mempelajari Spring Boot skill kita akan meningkat untuk membuat sebuah aplikasi Java berbasis Spring Boot.
Tetapi sebelum lebih jauh mempelajari Spring Boot, sebenarnya Spring Boot sendiri adalah salah satu framework Spring dengan less konfigurasi ketika akan membangun aplikasi Java. Sementara Spring sendiri feature core-nya yang terkenal adalah depedency injection
, spring menyediakan resource berupa objek tanpa kita membuat secara manual. Beberapa point yang akan kita bahas adalah sebagai berikut
- Konfigurasi Spring Boot – Browser
- Konfigurasi Spring Boot – Editor
- Hello World Spring Boot
- Referensi
Konfigurasi Spring Boot – Browser
Untuk dapat memulai project Spring Boot dengan Spring Initializr
, langkah awal yang dapat dilakukan adalah melakukan konfigurasi melalui browser. Silakan menuju ke halaman website ini. Kira-kira tampilannya adalah sebagai berikut
Dari tampilan di atas ada beberapa inputan yang perlu diisi ketika akan membuat sebuah projek menggunakan Spring Boot, dijelaskan seperti di bawah ini
Poject
; build tool yang akan kita gunakan dalam project, silakan dipilih sesuai preferensi masing-masing. Jika pada project-project yang saya buat sebelumnya menggunakan Maven.Language
; bahasa pemrograman yang akan digunakan, ternyata spring tidak hanya support Java. Tetapi Kotlin maupun Groovy juga bisa.Spring Boot
; Spring Boot yang digunakan dalam project.Project Metadata
; hal ini terkait dengan nama packet atau folder, biasanya penamaan mirip sebauh domain tetap membacanya dari belakang.Depedencies
; library-library yang dibutuhkan, silakan ketikkan nama library yang dibutuhkan kemudian tambahkan. Sebenarnya untuk menambahkan setelah dari langkah ini juga bisa, tambahkan di filepom.xml
jika menggunakan Maven.
Untuk konfigurasi yang lebih lagi, silakan pilih Options
sehingga tampilannya dapat dilihat seperti pada gambar di atas. Beberapa pointnya kira-kira seperti berikut
Packaging
; output dari aplikasi kita yang akan dibangun, Jar berarti aplikasi yang berjalan di desktop base ataupun CLI. Sedangkan War adalah aplikasi web base.Java
; versi Java yang digunakan, defaultnya adalah Java 8.
Konfigurasi Spring Boot – Editor
Selain Spring Initializr
versi browser, sebenarnya tersedia juga untuk versi desktop yaitu pada editor. Pada kesempatan ini saya menggunakan editor Intellij IDEA versi full menggunakan akun akademik. Silakan buat projek baru kemudian pilih Spring Initializr
<figcaption>Spring Initializr Editor(1)</figcaption></figure>
Sebenarnya mirip dengan Spring Initializr versi browser untuk property-property yang perlu kita sesuaikan, yang berbeda terkait dengan Version
untuk menginfokan versi dari aplikasi.
<figcaption>Spring Initializr Editor(2)</figcaption></figure>
Terkait dengan depedensi silakan dipilih sesuai dengan kebutuhan Anda, misalkan jika ingin menggunakan hibernate bisa dipilih pada kategori SQL-Spring Data JPA
atau dengan mengetikkan pada icon cari seperti pada gambar di atas.
Hello World Spring Boot
Kita akan coba membuat aplikasi yang sederhana menggunakan Spring Boot, sebelumnya silakan buat project menggunakan Spring Initializr
bisa menggunakan browser ataupun editor. Sementara kita menggunakan Maven untuk build tool dan tidak membutuhkan depedency yang digunakan. Ketika kita membuat project menggunakan Spring Boot, secara automatis akan dibuatkan class yang isinya seperti di bawah ini.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
@Bean
public HelloService helloService() {
return new ConsoleHelloService();
}
}
Terdapat anotasi @SpringBootApplication
yang artinya adalah aplikasi tersebut menggunakan Spring Boot, sedangkan @Bean
akan dijelaskan nanti. Kemudian buat interface seperti di bawah ini
public interface HelloService {
public void KatakanHai(String s);
}
Sebenarnya fungsi interface di atas hanya berisi methode untuk menampilkan message atau pesan sederhana. Jangan lupa tambahkan class untuk mengimplementasikan interface di atas, class tersebut adalah di bawah ini
public class ConsoleHelloService implements HelloService {
public ConsoleHelloService() {
}
@Override
public void KatakanHai(String s) {
System.out.println(s);
}
}
Karena class ConsoleHelloService
mengimplement interface HelloService
, sehingga harus meng-override dan meng-implementasikan method KatakanHai()
. Selanjutnya buatlah sebuah class yang mengimplement interface CommandLineRunner
karena kita akan membuat aplikasi command line.
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class HelloCommandLineRunner implements CommandLineRunner {
private final HelloService helloService;
public HelloCommandLineRunner(HelloService helloService) {
this.helloService = helloService;
}
@Override
public void run(String... args) throws Exception {
helloService.KatakanHai("Hai...!");
}
}
Pada class di atas terdapat anotasi @Component
, fungsinya adalah agar Spring menandai class tersebut komponen Spring. Jika dilihat ada instance dari interface HelloService
, hanya saja ada sebuah kontruktor dengan instance helloService
. Hal tersebut bisa terjadi karena menggunakan fungsi Spring, depedency injection
. Silakan lihat kembali class HelloWorldApplication
, terdapat anotasi @Bean
pada method helloService
itu digunakan untuk meng-instance sebuah class. Jika dijalankan hasilnya adalah sebagai berikut
:: Spring Boot :: (v2.1.6.RELEASE) 2019-07-11 13:32:36.195 INFO 67145 --- [ main] c.s.helloworld.HelloworldApplication : Starting HelloworldApplication on Od3ngs-MacBook-Pro.local with PID 67145 (/Users/od3ng/IdeaProjects/helloworld/target/classes started by od3ng in /Users/od3ng/IdeaProjects/helloworld) 2019-07-11 13:32:36.198 INFO 67145 --- [ main] c.s.helloworld.HelloworldApplication : No active profile set, falling back to default profiles: default 2019-07-11 13:32:36.725 INFO 67145 --- [ main] c.s.helloworld.HelloworldApplication : Started HelloworldApplication in 15.88 seconds (JVM running for 21.591) Hai…!
Jika dilihat output di atas pada baris terakhir terdapat "Hai...!"
, walapun contohnya masih sederhana tetapi konsep Spring dan penggunaan framework Spring Boot insya alloh sudah dapat tersajikan. Untuk full code dapat didapatkan di sini.
Demikianlah tulisan saya mengenai pengenalan framework Spring dengan Spring Boot, semoga menjadi ilmu yang baru bagi temen-temen yang sedang belajar Java khususnya Spring Boot. Kritik dan saran sangat diharapkan untuk meningkatkan kwalitas blog ini. Happy coding. ^_^
Referensi
- https://spring.io/projects/spring-boot
- https://content.pivotal.io/springone-platform-2017/its-a-kind-of-magic-under-the-covers-of-spring-boot-brian-clozel-st%C3%A9phane-nicoll
- https://content.pivotal.io/springone-platform-2017/from-zero-to-hero-with-spring-boot-brian-clozel
- https://www.baeldung.com/spring-component-repository-service