专栏首页CodeSheep的技术分享初探Kotlin+SpringBoot联合编程

初探Kotlin+SpringBoot联合编程

Kotlin是一门最近比较流行的静态类型编程语言,而且和Groovy、Scala一样同属Java系。Kotlin具有的很多静态语言特性诸如:类型判断、多范式、扩展函数、模式匹配等等让我无法只作为一个吃瓜群众了,所以稍微花了点时间了解了一下该语言。


Kotlin是一门最近比较流行的静态类型编程语言,而且和Groovy、Scala一样同属Java系。Kotlin具有的很多静态语言特性诸如:类型判断、多范式、扩展函数、模式匹配等等让我无法只作为一个吃瓜群众了,所以稍微花了点时间了解了一下该语言。

本文主要介绍一下如何使用Kotlin结合SpringBt开发一个带有数据库交互的REST风格基本程序


实验环境

  • JDK不用说了,Kotlin毕竟是运行在JVM环境下的语言,所以JDK必须,我这里用的JDK1.8
  • 数据库:MySQL
  • 数据库访问组件:Spring data jpa
  • J2EE框架:SpringBt 1.5.2.RELEASE
  • 构建工具:Gradle

工程创建

没啥好说的,我这里创建的是基于Gradle的Kotlin工程:

创建完成后的基本工程样式和SpringBt的工程几乎没任何区别,给张图示意一下好了:

好啦,接下来我们就来写代码完善这个工程即可


完善build.gradle配置

我们需要在build.gradle中引入SpringBt依赖,除此之外还要引入一些特定的插件方便我们向写Java代码一样来写Kotlin程序!

在dependencies中加入如下依赖:

这样SpringBt相关的依赖就配置上了!

接下来我们配置两个非常关键的插件依赖:

  • 无参(no-arg)插件
  • 全开放(allopen)插件

我们先配上,等下解释:

其中(以下解释源自《Kotlin极简教程》):

  • org.jetbrains.kotlin:kotlin-noarg是无参(no-arg)编译器插件,它为具有特定注解的类生成一个额外的零参数构造函数。 这个生成的构造函数是合成的,因此不能从 Java 或 Kotlin 中直接调用,但可以使用反射调用。 这样我们就可以使用 Java Persistence API(JPA)实例化 data 类。
  • org.jetbrains.kotlin:kotlin-allopen 是全开放编译器插件。我们使用Kotlin 调用Java的Spring AOP框架和库,需要类为 open(可被继承实现),而Kotlin 类和函数都是默认 final 的,这样我们需要为每个类和函数前面加上open修饰符。这样的代码写起来很费事。还好,我们有all-open 编译器插件。它会适配 Kotlin 以满足这些框架的需求,并使用指定的注解标注类而其成员无需显式使用 open 关键字打开。 例如,当我们使用 Spring 时,就不需要打开所有的类,跟我们在Java中写代码一样,只需要用相应的注解标注即可,如 @Configuration 或 @Service。

讲白了,引入这两个特定的插件的目的就是为了方便我们向写SpringBt代码一样来写Kotlin程序!


配置application.properties

这里面主要是跟Mysql数据库相关的一些配置:


正式编写工程

我们需要去数据库中查询东西,所以二话不说,写个访问数据库的标准代码层:

  • controller
  • entity
  • repository
  • service

各部分代码如下:

  • People.kt
  • PeopleRepository.kt
  • PeopleService.kt
  • PeopleController.kt

可见有了无参、全开放组件加持后,写代码和写Java的代码基本没区别了


实际实验

首先需要去Mysql中建好数据库,并插入一些数据:

然后启动工程,访问: http://localhost:7000/hello?lastName=wang

可以看到数据成功被取回:


参考文献

《Kotlin极简教程》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初探Kotlin+SpringBoot联合编程

    Kotlin是一门最近比较流行的静态类型编程语言,而且和Groovy、Scala一样同属Java系。Kotlin具有的很多静态语言特性诸如:类型判断、多范式、扩...

    CodeSheep
  • SpringBoot应用Docker化

    CodeSheep
  • 《Kotlin极简教程》第2章 快速开始:HelloWorld

    我们在本章将介绍使用Kotlin程序设计语言,分别使用命令行、应用程序、Web RESTFul、Android、Kotlin JavaScript等方式向世界问...

    一个会写诗的程序员
  • 《Kotin 极简教程》第11章 使用Kotlin 集成 SpringBoot开发Web服务端第11章 使用Kotlin集成SpringBoot开发Web服务端《Kotlin极简教程》正式上架:

    我们在前面第2章 “ 2.3 Web RESTFul HelloWorld ” 一节中,已经介绍了使用 Kotlin 结合 SpringBoot 开发一个RES...

    一个会写诗的程序员
  • 从SpringBoot到SpringMVC

    用久了SpringBoot,深受其约定大于配置的便利性毒害之后,我想回归到SpringMVC时代,看看SpringMVC开发模式中用户是如何参与的。本文就来体验...

    CodeSheep
  • 利用TICK搭建Docker容器可视化监控中心

    性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息。...

    CodeSheep
  • ElasticSearch搜索引擎在SpringBoot中的实践

    首先当然需要安装好elastic search环境,最好再安装上可视化插件 elasticsearch-head来便于我们直观地查看数据。

    CodeSheep
  • 《Springboot极简教程》使用Spring Boot, JPA, Mysql, ThymeLeaf,gradle, Kotlin快速构建一个CRUD Web App

    使用Spring Boot, JPA, Mysql, ThymeLeaf,gradle, Kotlin快速构建一个CRUD Web App

    一个会写诗的程序员
  • Spring Boot日志框架实践

    CodeSheep

扫码关注云+社区

领取腾讯云代金券