Membuat Program Pertama dengan Spring Framework (Bagian -1)
Pada tutorial sebelumnya subrutin telah mengulas mengenai konsep dasar Spring Framework yaitu Inversion of Control dan Depency Injection. Jika pembaca telah membaca artikel tersebut, pembaca sudah meng-clone repositori source code yang dibahas dalam program, anda seharusnya bertanya bagaimana membuat project menggunakan Spring Framework pertama kali?
Dalam tulisan kali ini, subrutin akan membahas bagaimana membuat “project minimal” dengan Spring Framework. “Spring Framework minimal” yang dimaksud disini adalah modul Spring Core Container yang merupakan modul paling inti dalam Jagad “Spring Universe”
Mengapa tidak menggunakan Spring Boot saja?
Mungkin ada programmer java, terutama yang baru belajar tentang Spring Framework, bakal nyeletuk tentang masalah ini. Sebelumnya, subrutin akan bahas singkat terlebih dahulu bahwa Spring Boot bukanlah nama framework, ia adalah salah satu nama modul di dalam “Spring Universe”. Spring Boot adalah modul yang memungkinkan programmer membangun aplikasi standalone dengan sedikit atau tanpa konfigurasi sama sekali.
Ada, banyak tutorial di Internet yang membahas tentang Spring Boot .Tapi yang perlu penulis utarakan adalah Spring Boot tidak cocok digunakan oleh pemula yang ingin belajar Spring Framework secara mendasar. Jika pembaca telah menguasai konsep – konsep dari Spring Framework, maka secara otomatis akan menguasai Spring Boot dengan sendirnya.
Mengapa? Ini dikarenakan Spring Boot menggunakan banyak auto configuration sehingga programmer pemula kebanyakan tidak memahami apa yang terjadi dibaliknya. Spring Boot dapat diibaratkan mobil bertransmisi gigi otomatis, sedangkan belajar modul Spring Framework dari scratch adalah belajar mengendarai mobil bertransmisi manual.
Jika pembaca ingin menjadi seorang calon Ninja Developer, pembaca perlu menguasai secara detail komponen – komponen yang berperan di dalam framework, bagaimana prinsip kerjanya, sehingga pembaca kelak dapat dengan mudah melakukan debugging jika menemui masalah di kemudian hari
- Prasyarat Perangkat Lunak.
Dalam tulisan ini subrutin menggunakan sistem Operasi Microsoft Windows 10. dengan software sebagai berikut
- Java 11
- Maven
- Spring Tool Suite
Pembaca dapat mempelajari terlebih dahulu tutorial bagaimana menginstal Java11, Maven , dan Spring Tool Suite pada tautan berikut
- Create Simple Maven Project
Pertama, buat project java baru menggunakan maven pada mode interactive, dengan jenis archetype maven-archetype-quickstart
Maven akan memunculkan banyak pilihan jenis archetype. Anda dapat mengetikkan nomer index dari archetype yang ingin dipilih atau dapat langsung ketikkan keyword archetype yang ingin digunakan untuk mempersempit hasil.
Misalnya masukkan keyword maven-archetype-quickstart
. Maven kemudian mempersempit hasil pencarian archetype menjadi hanya sejumlah archetype. Pilih 2, karena archetype yang ingin di-generate adalah
org.apache.maven.archetypes:maven-archetype-quickstart
Berikutnya pilih versi dari maven-archetype-quickstart
yang ingin digunakan, penulis menggunakan versi 1.4. kemudian berikan nilai untuk property sebagai berikut
- groupId:
com.subrutin.belajarspring
- artifactId:
belajar-spring
- version:
1-0-SNAPSHOT
- package:
com.subrutin.belajarspring
Berikutnya maven akan meminta konfirmasi terhadap konfigurasi yang telah dimasukan, masukan Y
jika konfigurasi yang di-input sebelumnya telah benar.
- Import Maven Project
Setelah project maven berhasil di-generate, import project tersebut ke IDE favorit anda, dalam artikel ini penulis menggunakan Spring Tool Suite 3.9.7. mengimpor project Maven menggunakan STS, caranya sama persis ketika menggunakan Eclipse IDE yaitu melalui menu File > Import > Maven > Existing Maven Projects
Pada jendela dialog Import Maven Projects, arahkan ke direktori project maven yang telah di-generate dalam langkah sebelumnya
Klik Finish, lalu tunggu sampai proses import project selesei.
- Spring Framework Core Container
Sebagaimana pernah dibahas pada tulisan lalu, Spring Core Container, terdiri dari modul – modul seperti yang diilustrasikan pada gambar
Spring Framework versi terbaru saat tulisan ini dibuat adalah 5.1.6.RELEASE. Dependesi yang diperlukan untuk membuat Spring Framework Core Container
setidaknya adalah sebagai berikut
- spring-core
- spring-context
- spring-context-support
- spring-expression
- spring-beans
Deklarasikan dependensi tersebut kedalam pom.xml
, untuk mengetahui deklarasi depensi lengkapnya, pembaca dapat mencarinya pada https://search.maven.org/. Berikut adalah dependesi yang ditambahkan di dalam tag dependencies
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.1.6.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies>
- ApplicationContext
Sebagaimana yang pernah dibahas di tulisan sebelumnya, untuk mengkonfigurasi object – object dan dependensinya yang akan dikelola oleh Spring Container dapat dilakukan dengan menggunakan format XML atau anotasi Java.
Sesuai dengan konvensi dari maven. file konfigurasi ditempatkan pada src/main/resources
Untuk itu buat source folder baru di dengan nama src/main/resources
Kemudian buat Spring Bean Configuration File
pada source folder src/main/resources
. Dengan klik kanan pada source folder src/main/resources
lalu pilih New > Spring Bean Configuration File
Secara konvensi biasanya file xml tersebut diberi nama applicationContext.xml
namun sebenarnya programmer bebas menamainya dengan nama yang diinginkan. Dalam aplikasi yang sesungguhnya, Spring Bean Configuration File,
dikarenakan besarnya aplikasi dan panjangnya file xml yang dibuat. Biasanya untuk alasan kemudahan pembacaan, file tersebut dipecah menjadi beberapa file secara arsitektural, misalnya DAO, Service, Security akan menjadi xml yang tersendiri.
Pada pengaturan tentang namespaces XSD
, centang beans
, dan context
lalu centang versi XSD yang paling akhir untuk tiap tiap namespaces. Klik Next, dan Finisih untuk menyeleseikan konfigurasi
Sampai di sini, project template kosong Spring Framework telah berhasil dibuat berserta file konfigurasi applicationContext.xml
. Pada bagian berikutnya, subrutin akan membuat sebuah beans baru dan mengkonfigurasinya sebagaimana contoh yang pernah dibahs pada pembahasan tentang Inversion of Control vs Dependensi Injection
Bersambung