Le code que j'ai vu dans "Kotorin et Spring Mone - 1. SPRING INITIALIZR" a été généré automatiquement par SPRING INITIALIZR et il n'y a pas de traitement particulier. C'était une chose.
Donc cette fois, j'ajouterai le processus très simple suivant.
RestController Créez une classe avec l'annotation ** @ RestController ** pour définir la classe RestController.
RestController
@RestController
class SimpleController {
...
}
À propos, ce @RestController est une combinaison de ** @ Controller ** et ** @ ResponseBody **. Par conséquent, il se comporte de la même manière même s'il est défini comme suit.
Controller
@Controller
@ResponseBody
class SimpleController {
...
}
RequestMapping ** @RequestMapping ** Annoter pour mapper aux demandes des clients.
Spécifiez les conditions de mappage à l'aide des attributs suivants.
GetMapping
L'annotation ** @GetMapping ** est une annotation qui agit comme un raccourci pour @RequestMapping (method = RequestMethod.GET)
.
Data Class Une classe de données est une classe utilisée pour contenir uniquement des données sans traitement. La classe de données est définie dans le format suivant.
DataClass
data class Data(var id: String, var value: String)
Le compilateur déduit et génère automatiquement le traitement suivant à partir du contenu défini comme classe de données.
Spring Dependencies
Data Class
data class Message(var id: String,
var title: String,
var message: String)
Vous pouvez voir que la description est simple sans getter, setter, toString et equals qui ont été décrits lors de la définition de la définition de JavaBeans en Java. Une description similaire a été réalisée en Java en utilisant ** Lombok **, mais Kotlin prend en charge ce format au niveau du langage.
RestController
import io.pivotal.syanagihara.simple.data.Message
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import java.text.SimpleDateFormat
import java.util.*
@RestController
@RequestMapping("/simple")
class SimpleController {
@GetMapping
fun getMessages() : List<Message> {
return listOf(
Message(
UUID.randomUUID().toString(),
"First Message",
"This is a 1st message on ${getDate()}."
)
)
}
private fun getDate() : String {
val simpleDateFormat = SimpleDateFormat("yyyy/MM/dd HH:mm:ss")
return simpleDateFormat.format(Date())
}
}
J'utilise la classe ** java.util.Date ** pour imprimer la date et l'heure actuelles. De cette manière, les appels d'API Java de Kotlin peuvent être effectués de manière transparente.
J'ai déclaré getDate () private, mais je résumerai brièvement les modificateurs d'accès de Kotlin.
Modificateur d'accès | Contenu |
---|---|
public | Accessible depuis toutes les classes |
internal | Accessible à partir des classes du même module |
protected | Uniquement accessible depuis les sous-classes |
private | Uniquement accessible depuis la classe déclarée |
Lorsque vous accédez à cette application, elle renvoie le résultat suivant.
$ curl http://localhost:8080/simple
[{"id":"2ac2bf0a-8276-43e2-89d2-c0eb70ad38d9","title":"First Message","message":"This is a 1st message on 2018/11/04 20:52:45."},{"id":"04e915e4-f4fb-4920-84c9-f411f7603044","title":"Second Message","message":"This is a 2nd message on 2018/11/04 20:52:45."}]
Je trouve Lombok + Java utile, mais je trouve Kotlin, qui offre des fonctionnalités équivalentes à Lombok au niveau du langage, encore plus utile. De plus, cette fois, j'ai créé une application simple en utilisant RestController. Avec Spring + Kotlin, c'était très simple et facile à compléter sans description inutile.
Recommended Posts