Der Code, den ich in "Kotorin und Spring Mone - 1. SPRING INITIALIZR" gesehen habe, wurde automatisch von SPRING INITIALIZR generiert und es gibt keine bestimmte Verarbeitung. Es war eine Sache.
Dieses Mal werde ich den folgenden sehr einfachen Prozess hinzufügen.
RestController Erstellen Sie eine Klasse mit der Annotation ** @ RestController **, um die RestController-Klasse zu definieren.
RestController
@RestController
class SimpleController {
...
}
Dieser @RestController ist übrigens eine Kombination aus ** @ Controller ** und ** @ ResponseBody **. Daher verhält es sich genauso, auch wenn es wie folgt definiert ist.
Controller
@Controller
@ResponseBody
class SimpleController {
...
}
RequestMapping ** @RequestMapping ** Kommentieren Sie, um Anforderungen von Clients zuzuordnen.
Geben Sie die Zuordnungsbedingungen mit den folgenden Attributen an.
GetMapping
Die Annotation ** @GetMapping ** ist eine Annotation, die als Verknüpfung für @RequestMapping (method = RequestMethod.GET)
dient.
Data Class Eine Datenklasse ist eine Klasse, die nur Daten ohne Verarbeitung enthält. Die Datenklasse ist im folgenden Format definiert.
DataClass
data class Data(var id: String, var value: String)
Der Compiler leitet automatisch die folgende Verarbeitung aus den als Datenklasse definierten Inhalten ab und generiert diese.
Spring Dependencies
Data Class
data class Message(var id: String,
var title: String,
var message: String)
Sie können sehen, dass die Beschreibung ohne Getter, Setter, toString und Gleichheiten einfach ist, die beim Definieren der Definition von JavaBeans in Java beschrieben wurden. Eine ähnliche Beschreibung wurde in Java mit ** Lombok ** erreicht, aber Kotlin unterstützt dieses Format auf Sprachebene.
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())
}
}
Ich verwende die Klasse ** java.util.Date **, um das aktuelle Datum und die aktuelle Uhrzeit zu drucken. Auf diese Weise können Java-API-Aufrufe von Kotlin transparent erfolgen.
Ich habe getDate () als privat deklariert, aber ich werde Kotlins Zugriffsmodifikatoren kurz zusammenfassen.
Zugriffsmodifikator | Inhalt |
---|---|
public | Zugänglich von allen Klassen |
internal | Zugriff über Klassen im selben Modul |
protected | Nur über Unterklassen zugänglich |
private | Nur von der deklarierten Klasse aus zugänglich |
Wenn Sie auf diese Anwendung zugreifen, wird das folgende Ergebnis zurückgegeben.
$ 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."}]
Ich finde Lombok + Java nützlich, aber ich finde Kotlin, das Lombok-äquivalente Funktionen auf Sprachebene bietet, noch nützlicher. Auch dieses Mal habe ich eine einfache Anwendung mit RestController erstellt. Mit Spring + Kotlin war es sehr einfach und ohne unnötige Beschreibung zu vervollständigen.
Recommended Posts