SpringBoot 2.X Kotlin 系列之Hello World

image

从去年开始就开始学习kotlin了,但是一直没有时间总结自己学习的东西,现在终于有点时间了,所将整理一套SpringBoot kotlin 的开发教程,希望能够帮组更多想从Java转Kotlin的朋友。

一、Kotlin简介

Kotlin是一门静态语言,支持多种平台,包括移动端、服务端以及浏览器端,此外,Kotlin还是一门融合了面向对象与函数式编程的语言,支持泛型、安全的空判断,并且Kotlin与Java可以做到完全的交互。

二、教程环境

  • JAVA "11.0.2"
  • maven 3.5.3
  • mongodb 4.0
  • springBoot 2.1.3
  • kotlin 1.3.21

三、创建项目

  • 创建项目有两种方式:
  • 一种是在Spring官网上创建https://start.spring.io/
image
  • 二是在IDEA上创建如图所示
image

image
  • 勾选Reactive Web 然后点NEXT,然后一直默认最后点击完成即可。
  • 然后我们看到以下的项目结构
image
  • POM文件



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.3.RELEASE
         
    
    io.intodream
    kotlin01
    1.0.0
    kotlin01
    Demo project for Spring Boot

    
        1.8
        1.3.21
    

    
        
            org.springframework.boot
            spring-boot-starter-webflux
        
        
            com.fasterxml.jackson.module
            jackson-module-kotlin
        
        
            org.jetbrains.kotlin
            kotlin-reflect
        
        
            org.jetbrains.kotlin
            kotlin-stdlib-jdk8
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            io.projectreactor
            reactor-test
            test
        
    

    
        ${project.basedir}/src/main/kotlin
        ${project.basedir}/src/test/kotlin
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                org.jetbrains.kotlin
                kotlin-maven-plugin
                
                    
                        -Xjsr305=strict
                    
                    
                        spring
                    
                
                
                    
                        org.jetbrains.kotlin
                        kotlin-maven-allopen
                        ${kotlin.version}
                    
                
            
        
    




四、HelloWord

  • 项目创建完后,我们看到了启动类和我和熟悉的Java SpringBoot几乎是一样的,正如官方所说的完全兼容Java,所以我们就不用担心了。

package io.intodream.kotlin01

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class Kotlin01Application

fun main(args: Array) {
    runApplication(*args)
}


  • 下面我们就来写一个Hello World
@RequestMapping("/rest")
@RestController
class HelloController {

    @GetMapping("/hello")
    fun hello (): String {
        return "Hello World"
    }
}
  • 写完后我们开始运行项目,看到控制台输入一下信息则说明运行完毕
2019-03-24 17:03:53.848  INFO 4342 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 8080
2019-03-24 17:03:53.863  INFO 4342 --- [           main] i.i.kotlin01.Kotlin01ApplicationKt       : Started Kotlin01ApplicationKt in 3.434 seconds (JVM running for 8.546)
  • 打开浏览器输入http://localhost:8080/rest/hello,我们会看到下面的信息,第一个SpringBoot Kotlin项目我们就写好了。
image
  • 我们在创建项目的时候选择的是Reactive Web,而不是传入Web,也就是说我们可以编写响应式的Web程序,下面就编写一个简单的响应式接口。
@GetMapping("/mono")
    fun helloMono(): Mono {
        return Mono.just("Hello Mono")
    }
  • 我们这里看到和普通的接口没有异同,除了返回类型是用Mono包装之外。与之对应的还有Flux,这个后面我们会讲到。
image

你可能感兴趣的:(SpringBoot 2.X Kotlin 系列之Hello World)