Este team especializado pasados algunos días de trabajo y de recopilar de datos, dimos con la respuesta, esperamos que todo este artículo sea de utilidad en tu trabajo.
Autor | Hadi Hariri, Edoardo Vacchi, Sébastien Deleuze |
Fuente | En GitHub |
Este tutorial nos guía a través del proceso de creación de un controlador REST simple con Spring Boot
Kotlin funciona sin problemas con Spring Boot y muchos de los pasos que se encuentran en el Guías de primavera para crear un servicio RESTful se puede seguir literalmente para Kotlin. Sin embargo, existen algunas diferencias menores cuando se trata de definir la configuración de Gradle y la estructura de diseño del proyecto, así como el código de inicialización.
En este tutorial, recorreremos los pasos necesarios. Para obtener una explicación más detallada de Spring Boot y Kotlin, consulte Creación de aplicaciones web con Spring Boot y Kotlin.
Tenga en cuenta que todas las clases de este tutorial están en el org.jetbrains.kotlin.demo
paquete.
Definiendo el proyecto y las dependencias
En este tutorial, usaremos Gradle, pero se puede lograr lo mismo usando la estructura del proyecto IntelliJ IDEA o Maven. Para obtener detalles sobre cómo configurar Gradle para que funcione con Kotlin, consulte Uso de Gradle.
El archivo Gradle es bastante estándar para Spring Boot. Las únicas diferencias son el diseño de la estructura de las carpetas de origen de Kotlin, las dependencias de Kotlin necesarias y la primavera-kotlin Complemento Gradle (proxies CGLIB utilizados, por ejemplo, para @Configuration
y @Bean
el procesamiento requiere open
clases).
buildscript ext.kotlin_version ='1.4.10'// Required for Kotlin integration ext.spring_boot_version ='2.1.0.RELEASE' repositories jcenter() dependencies classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"// Required for Kotlin integration classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"// See https://kotlinlang.org/docs/reference/compiler-plugins.html#spring-support classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version" classpath "io.spring.gradle:dependency-management-plugin:1.0.6.RELEASE" apply plugin:'kotlin'// Required for Kotlin integration apply plugin:"kotlin-spring"// https://kotlinlang.org/docs/reference/compiler-plugins.html#spring-support apply plugin:'org.springframework.boot' apply plugin:'io.spring.dependency-management' jar baseName ='gs-rest-service' version ='0.1.0' repositories jcenter() dependencies compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"// Required for Kotlin integration compile "org.springframework.boot:spring-boot-starter-web"testCompile('org.springframework.boot:spring-boot-starter-test')
Creación de una clase de datos de saludo y un controlador
El siguiente paso es crear la clase de datos de saludo que tiene dos propiedades: identificación y un contenido
dataclassGreeting(val id: Long,val content: String)
Ahora definimos el GreetingController que atiende solicitudes del formulario / greeting? name = value y devuelve un objeto JSON que representa una instancia de Saludo
@RestControllerclass GreetingController val counter =AtomicLong()@GetMapping("/greeting")fungreeting(@RequestParam(value ="name", defaultValue ="World") name: String)=Greeting(counter.incrementAndGet(),"Hello, $name")
Como se puede ver, esta es nuevamente una traducción de uno a uno de Java a Kotlin, sin nada especial requerido para Kotlin.
Crear la clase de aplicación
Finalmente, necesitamos definir una clase de aplicación. Como Spring Boot busca un método principal estático público, necesitamos definirlo en Kotlin. Podría hacerse con el @JvmStatic anotación y un objeto complementario, pero aquí preferimos usar una función de nivel superior definida fuera de la clase Application, ya que conduce a un código más conciso y limpio.
No es necesario marcar la clase de aplicación como abierto ya que estamos usando el primavera-kotlin Complemento de Gradle que lo hace automáticamente.
@SpringBootApplicationclass Application funmain(args: Array<String>) SpringApplication.run(Application::class.java,*args)
Ejecutando la aplicación
Ahora podemos usar cualquiera de las tareas estándar de Gradle para Spring Boot para ejecutar la aplicación. Como tal, corriendo
./gradlew bootRun
la aplicación está compilada, los recursos empaquetados y lanzados, lo que nos permite acceder a ella a través del navegador (el puerto predeterminado es 8080)
Nos encantaría que puedieras dar difusión a esta reseña si te ayudó.