This Pada catatan teknis ini mencatat tentang bagaimana membuat aplikasi web blog sederhana yang dibuat dengan dukungan dari teknologi Spring Boot and Kotlin.
Jika kamu baru mengenal kotlin Kotlin, kamu bisa belajar bahasa pemrograman ini dari halaman reference documentation, tutorial online di Kotlin Koans tutorial atau langsung menggunakan Spring Framework reference documentation yang juga memberikan contoh kode-kode Kotlin.
Dukungan dokumentasi dan referensi untuk Spring dan Kotlin tersedia pada halaman Spring Framework dan Spring Boot. Jika anda memerlukan bantuan, silahkan cari jawaban atau bertanya di spring
dan kotlin
tags di StackOverflow atau diskusi langsung di channel #spring
pada Kotlin Slack.
Membuat Project Baru
Pertamatama kita perlu membuat aplikasi Spring Boot terlebih dahulu, dari beberapa cara cara termudah adalah menggunakan Spring Initializr.
Kunjungi halaman Spring Initializr https://start.spring.io dan pilih Kotlin ubtuk bahasa pemrograman. Gradle adalah build tool yang umum digunakan dalam project Kotlin, dan ini menyediakan Kotlin DSL yang mana secara default digunakan ketika membuat sebuah project Kotlin, maka pilihan ini bisa dibilang adalah pilihan yang direkomendasikan. Tapi kita juga bisa memilih Maven jika memang lebih nyaman dengan Maven. Kita bisa membuka halaman Spring Initializr dengan URL berikut https://start.spring.io/#!language=kotlin&type=gradle-project untuk memilih Kotlin and Gradle secara default.
Pilih "Gradle Project"
Enter the following artifact coordinates:
blog
Tambahkan dependencies berikut ini:
Spring Web
Mustache
Spring Data JPA
H2 Database
Spring Boot DevTools
Klik "Generate Project".
![]() |
Halaman Spring Initializr. |
![]() |
FIle .zip berisi project standard Spring Boot dan Kotlin setelah di extract. |
Membuka Project di Intellij IDEA
![]() |
Buka folder dari hasil extrak .zip |
![]() |
Trust Project. |
![]() |
Proses download segala kebutuhan project. |
![]() |
Project siap untuk digunakan. |
Jalankan Project di Intellij IDEA
![]() |
Klik button play hijau atau CTRL+F10 |
Setup Database Project
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:127.0.0.1}:3306/weblog
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
#spring.jpa.show-sql: true
Penjelasan Hal di Atas
package com.yusuf.weblog
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class WeblogApplication
fun main(args: Array<String>) {
runApplication<WeblogApplication>(*args)
}
Dibandingkan dengan Java, perbedaan yang paling mencolok adalah tiadanya semicolons dan kelas kosong tidak perlu memiliki brackets. runApplication<BlogApplication>(*args)
adalah idiom milik Kotlin untuk SpringApplication.run(BlogApplication::class.java, *args)
adan bisadigunakan untuk melakukan customize aplikasi seperti berikut;
src/main/kotlin/com/yusuf/weblog/WeblogApplication.kt
Dibandingkan dengan Java, perbedaan yang paling mencolok adalah tiadanya semicolons dan kelas kosong tidak perlu memiliki brackets. runApplication<BlogApplication>(*args)
adalah idiom milik Kotlin untuk SpringApplication.run(BlogApplication::class.java, *args)
adan bisadigunakan untuk melakukan customize aplikasi seperti berikut;
src/main/kotlin/com/yusuf/weblog/WeblogApplication.kt
fun main(args: Array<String>) {
runApplication<WeblogApplication>(*args) {
setBannerMode(Banner.Mode.OFF)
}
}
Membuat Kotlin Controller
package com.yusuf.weblog
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.ui.set
import org.springframework.web.bind.annotation.GetMapping
@Controller
class HomeController {
@GetMapping("/")
fun home(model: Model): String {
model["title"] = "Blog Home Index"
return "home"
}
}
package com.yusuf.weblog
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.ui.set
import org.springframework.web.bind.annotation.GetMapping
@Controller
class HomeController {
@GetMapping("/")
fun home(model: Model): String {
model["title"] = "Blog Home Index"
return "home"
}
}
org.springframework.ui.set
ektensi yang memungkinakan kita menulis kode lebih simple seperti model["title"] = "Blog Home Index"
bandingkan dengan menulis model.addAttribute("title", "Blog")
. Spring Framework KDoc API memberikan fasilitas Kotlin extensions yang memperkaya si Java API itu sendiri.<html>
<head>
<title>{{title}}</title>
</head>
<body>
</body>
</html>
src/main/resources/templates/home.mustache
{{> header}}
<h1>{{title}}</h1>
{{> footer}}
Hasil di Browser
![]() |
http://localhost:8080/ |
Referensi dan sumber belajar
https://spring.io/guides/tutorials/spring-boot-kotlin/
https://spring.io/guides/gs/accessing-data-mysql/
Comments
Post a Comment