资讯专栏INFORMATION COLUMN

SpringBoot 2.X Kotlin 系列之Hello World

warkiz / 3022人阅读

摘要:二教程环境三创建项目创建项目有两种方式一种是在官网上创建二是在上创建如图所示勾选然后点,然后一直默认最后点击完成即可。我们这里看到和普通的接口没有异同,除了返回类型是用包装之外。与之对应的还有,这个后面我们会讲到。

</>复制代码

  1. 从去年开始就开始学习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/

二是在IDEA上创建如图所示


勾选Reactive Web 然后点NEXT,然后一直默认最后点击完成即可。

然后我们看到以下的项目结构

POM文件

</>复制代码

  1. 4.0.0
  2. org.springframework.boot
  3. spring-boot-starter-parent
  4. 2.1.3.RELEASE
  5. io.intodream
  6. kotlin01
  7. 1.0.0
  8. kotlin01
  9. Demo project for Spring Boot
  10. 1.8
  11. 1.3.21
  12. org.springframework.boot
  13. spring-boot-starter-webflux
  14. com.fasterxml.jackson.module
  15. jackson-module-kotlin
  16. org.jetbrains.kotlin
  17. kotlin-reflect
  18. org.jetbrains.kotlin
  19. kotlin-stdlib-jdk8
  20. org.springframework.boot
  21. spring-boot-starter-test
  22. test
  23. io.projectreactor
  24. reactor-test
  25. test
  26. ${project.basedir}/src/main/kotlin
  27. ${project.basedir}/src/test/kotlin
  28. org.springframework.boot
  29. spring-boot-maven-plugin
  30. org.jetbrains.kotlin
  31. kotlin-maven-plugin
  32. -Xjsr305=strict
  33. spring
  34. org.jetbrains.kotlin
  35. kotlin-maven-allopen
  36. ${kotlin.version}
四、HelloWord

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

</>复制代码

  1. package io.intodream.kotlin01
  2. import org.springframework.boot.autoconfigure.SpringBootApplication
  3. import org.springframework.boot.runApplication
  4. @SpringBootApplication
  5. class Kotlin01Application
  6. fun main(args: Array) {
  7. runApplication(*args)
  8. }

下面我们就来写一个Hello World

</>复制代码

  1. @RequestMapping("/rest")
  2. @RestController
  3. class HelloController {
  4. @GetMapping("/hello")
  5. fun hello (): String {
  6. return "Hello World"
  7. }
  8. }

写完后我们开始运行项目,看到控制台输入一下信息则说明运行完毕

</>复制代码

  1. 2019-03-24 17:03:53.848 INFO 4342 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port(s): 8080
  2. 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项目我们就写好了。

我们在创建项目的时候选择的是Reactive Web,而不是传入Web,也就是说我们可以编写响应式的Web程序,下面就编写一个简单的响应式接口。

</>复制代码

  1. @GetMapping("/mono")
  2. fun helloMono(): Mono {
  3. return Mono.just("Hello Mono")
  4. }

我们这里看到和普通的接口没有异同,除了返回类型是用Mono包装之外。与之对应的还有Flux,这个后面我们会讲到。


如果大家觉得文章有用麻烦点一下赞,有问题的地方欢迎大家指出来。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77504.html

相关文章

  • SpringBoot 2.X Kotlin系列JavaMailSender发送邮件

    摘要:在很多服务中我经常需要用到发送邮件功能,所幸的是可以快速使用的框架,只要引入改框架我们可以快速的完成发送邮件功能。引入获取邮件发送服务器配置在国内用的最多的就是邮件和网易邮件,这里会简单讲解获取两家服务商的发送邮件配置。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 在很多服务中我...

    derek_334892 评论0 收藏0
  • SpringBoot 2.X Kotlin 系列Reactive Mongodb 与 JPA

    摘要:一本节目标前两章主要讲了的基本操作,这一章我们将学习使用访问,并通过完成简单操作。这里有一个问题什么不选用数据库呢答案是目前支持。突出点是,即非阻塞的。二构建项目及配置本章不在讲解如何构建项目了,大家可以参考第一章。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 一、本节目标 前两...

    MSchumi 评论0 收藏0
  • SpringBoot 2.X Kotlin 系列Reactive Mongodb 与 JPA

    摘要:一本节目标前两章主要讲了的基本操作,这一章我们将学习使用访问,并通过完成简单操作。这里有一个问题什么不选用数据库呢答案是目前支持。突出点是,即非阻塞的。二构建项目及配置本章不在讲解如何构建项目了,大家可以参考第一章。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 一、本节目标 前两...

    琛h。 评论0 收藏0
  • Kotlin + Spring Boot : 下一代 Java 服务端开发 》

    摘要:下一代服务端开发下一代服务端开发第部门快速开始第章快速开始环境准备,,快速上手实现一个第章企业级服务开发从到语言的缺点发展历程的缺点为什么是产生的背景解决了哪些问题为什么是的发展历程容器的配置地狱是什么从到下一代企业级服务开发在移动开发领域 《 Kotlin + Spring Boot : 下一代 Java 服务端开发 》 Kotlin + Spring Boot : 下一代 Java...

    springDevBird 评论0 收藏0
  • SpringBoot Kotlin 系列HTML与WebFlux

    摘要:上一章我们提到过与,对于具体的介绍没说到,这一章我在这里简单介绍一下,既然提到和,那肯定得提到什么是响应式编程,什么是。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 上一章我们提到过Mono 与 Flux,对于具体的介绍没说到,这一章我在这里简单介绍一下,既然提到Mono和Flu...

    crossoverJie 评论0 收藏0

发表评论

0条评论

warkiz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<