[JAVA] Spring avec Kotorin --2 RestController et Data Class

Aperçu / Description

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.

Hypothèse / environnement

Version d'exécution

Spring Dependencies

Environnement de développement

Procédure / Explication

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())
    }
}

Utilisation de l'API Java

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.

Modificateur d'accès

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

Résumé / Rétrospective

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.

Cette source

Recommended Posts

Spring avec Kotorin --2 RestController et Data Class
Ressort avec actionneur Kotorin --5
Printemps avec Kotorin ―― 1. INITIALISATION PRINTEMPS
Compatibilité de Spring JDBC et My Batis avec Spring Data JDBC (provisoire)
Spring with Kotorin --- 8. Couche de référentiel
Spring avec Kotorin --6 Traitement asynchrone
Ressort avec Kotorin ―― 7. Couche de service
Spring avec Kotorin - 4 Conception d'API REST
Spring with Kotorin ―― 9. Migration de base de données ―― Flyway
Liaison de données avec Spark et Cassandra
Créer une API REST avec Spring JPA Data avec REST et Lombok incroyablement facile.
OU rechercher avec la spécification Spring Data Jpa
HTTPS avec Spring Boot et Let's Encrypt
Test de validation de classe de formulaire avec Spring Boot
Méthode d'implémentation pour source multi-données avec Spring boot (Mybatis et Spring Data JPA)
Juste des images d'entrée et de sortie avec Spring MVC
Classe et modèle
Jusqu'à l'acquisition de données avec Spring Boot + MyBatis + PostgreSQL
Écrivez rapidement un test RestController avec Spring Boot + Spock
Mettre à jour périodiquement la base de données avec Spring Batch et My Batis
Référence mutuelle de l'entité de Spring Data JPA et ses notes
Spring with Kotorin --8 Repository layer --Supplément: H2 Database
[Débutant] Téléchargez des images et des fichiers avec Spring [Autosuffisant]
Trier par Spring Data JPA (avec tri par clé composée)
Création d'un référentiel commun avec Spring Data JPA
Essayez d'utiliser un conteneur DI avec Laravel et Spring Boot
Un mémorandum lors de l'essai de Spring Data JPA avec STS
Changer d'environnement avec Spring Boot application.properties et l'annotation @Profile
Ressort avec Kotorin ―― 3. Omettre les crochets d'onde de la fonction
Mémo d'utilisation de Spring Security: coopération avec Spring MVC et Boot
Spring Boot avec les paramètres du filtre de sécurité Spring et les points addictifs
J'ai essayé de démarrer avec Spring Data JPA
Jusqu'à l'utilisation de Spring Data et JPA Part 2
Différence entre Spring AOP et la classe cible de la bibliothèque
Jusqu'à l'utilisation de Spring Data et JPA Part 1
Tentative de SSR Vue.js avec Spring Boot et GraalJS
Connectez Spring Boot et Angular en toute sécurité avec OpenAPI Generator
abstract (classe abstraite) et interface (interface)
Comment utiliser la même classe Mapper dans plusieurs sources de données avec Spring Boot + MyBatis
Aperçu de Spring Data JDBC
Validation personnalisée avec Spring
Classe et instant part2
Avec Kotorin ―― 7. Fonction de cadrage
Télécharger avec Spring Boot
piège dynamodb de données de ressort
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
Agrégation de fenêtres de données de capteurs avec Apache Flink et Java 8
Gérez l'API de date et d'heure Java 8 avec Thymeleaf avec Spring Boot
J'ai essayé le guide d'introduction de Spring Boot [Accès aux données avec JPA]
Implémenter l'API REST avec Spring Boot et JPA (Application Layer)
Implémenter l'API REST avec Spring Boot et JPA (couche d'infrastructure)
Jusqu'à INSERT et SELECT sur Postgres avec botte de printemps et feuille de thym
Créez une API pour envoyer et recevoir des données Json avec Spring
Connectez-vous à la base de données avec spring boot + spring jpa et effectuez l'opération CRUD
Flux jusqu'à la sortie des données de la table à afficher avec Spring Boot
Implémenter l'API REST avec Spring Boot et JPA (Domain Layer Edition)
Développement piloté par domaine avec Java et Spring Boot-Layer et division de modules