Kotlin+SpringBoot服务端restful框架搭建(1)-阿里云开发者社区

开发者社区> 幸运券发放> 正文

Kotlin+SpringBoot服务端restful框架搭建(1)

简介: Kotlin+SpringBoot服务端restful框架搭建(1) 本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。
+关注继续查看

Kotlin+SpringBoot服务端restful框架搭建(1)

本文的组要目的是完成SpringBoot集成Kotlin的一个基本项目构建,通过这个例子能够对kotlin有一个简单的了解。与其看着枯燥的教程,看看它的使用也许会更有意思。

kotlin简介
Kotlin是一个基于JVM的编程语言,由JetBrains设计开发并开源。Kotlin可以编译成Java字节码也可以编译成JavaScript,支持开发Android,并且谷歌已经明确将Kotlin作为Android的一级开发语言。最新的Spring5版本也专门引入了对于Kotlin的支持。Kotlin拥有更简洁的代码,完全兼容java,而且同java可以实现完全的互调。使用Kotlin你起码可以少些30%的代码。

要求

  • JDK 1.8
  • maven构建
  • Spring4
  • IDEA Intellij
  • Kotlin 1.2.31

快速构建

首先构建一个maven项目,我们命名为KotlinDemo。(使用idea构建Kotlin项目需要按照Kotlin的插件。)
1.先来修改pom.xml添加需要使用的依赖。 引入spring-boot-starter-parent,这里使用1.5.6版本

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>

添加需要的依赖

 <properties>
    <java.version>1.8</java.version>
    <mybatis.spring.version>1.2.4</mybatis.spring.version>
    <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <kotlin.version>1.2.31</kotlin.version>
  </properties>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib-jre8</artifactId>
    <version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-reflect</artifactId>
    <version>${kotlin.version}</version>
</dependency>

在build中添加插件

<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>1.2.31</version>
    <configuration>
        <compilerPlugins>
            <plugin>spring</plugin>
        </compilerPlugins>
        <jvmTarget>1.8</jvmTarget>
    </configuration>
        <executions>
            <execution>
                <id>compile</id>
                <phase>compile</phase>
                <goals>
                    <goal>compile</goal>
                </goals>
            </execution>
            <execution>
                <id>test-compile</id>
                <phase>test-compile</phase>
                <goals>
                    <goal>test-compile</goal>
                </goals>
            </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <artifactId>kotlin-maven-allopen</artifactId>
                    <version>1.2.31</version>
                    </dependency>
            </dependencies>
   </plugin>

2.创建application.yml

server:
  context-path: /kotlin
  port: 8090

3.创建Application.kt文件

创建类的方法同java相似,也是引入各种包,但是需要注意Kotlin的main方法是class外面和java的main方法区别

添加spring的注解@RestController和@SpringBootApplication,我们在class里面创建一个简单的restfull格式的请求方法hello(),方法返一个String的字符串。

添加@RequestMapping时候需要注意设置method的时候,这里method接收的是一个数组,不是RequestMethod.GE,所以我们需要通过kotlin提供的arrayOf()方法转换一个下,这是一个创建数据的方法,具体的可以参考一下kotlin的文档。

注意一下 SpringApplication.run中参数这个和java的区别有点大

Application.kt类代码

package demo

import org.springframework.boot.SpringApplication
@RestController
@SpringBootApplication
class Application{

 @RequestMapping(value = "/hello",method =arrayOf(RequestMethod.GET))
    fun hello(): String {

        return "hello kotlin";

    }
}

fun main(args: Array<String>){

   //::符号是得到这个类的class对象
    SpringApplication.run(Application::class.java,*args);

}

3.项目基本搭建完成,试试启动项目访问http://localhost:8090/demo/hello,页面会返回hello kotlin。

原文地址http://www.bieryun.com/3097.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot实战(三)之使用RestFul Web服务
一、导入maven依赖 4.0.0 org.springframework gs-consuming-rest 0.1.0 org.springframework.
1772 0
SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
一、Mybatis框架 1、mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
1423 0
《SpringBoot揭秘:快速构建微服务体系》—第2章2.3节 了解一点儿JavaConfig
本节书摘来自华章出版社《SpringBoot揭秘:快速构建微服务体系》一书中的第2章,第2.2节了解一点儿JavaConfig,作者王福强,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.3 了解一点儿JavaConfig Java 5的推出,加上当年基于纯Java Annotation的依赖注入框架Guice的出现,使得Spring框架及其社区也“顺应民意”,推出并持续完善了基于Java代码和Annotation元信息的依赖关系绑定描述方式,即JavaConfig项目。
1135 0
SpringCloud微服务框架搭建
一、微服务架构 1.1什么是分布式 不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 1.2什么是集群 多台服务器部署相同应用构成一个集群 作用:通过负载均衡设备共同对外提供服务 1.3什么是RPC RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。
1804 0
Netty:一个非阻塞的客户端/服务器框架
Netty:一个非阻塞的客户端/服务器框架 Netty是一个异步事件驱动的网络应用框架,为Java网络应用的开发带来了一些新活力。Netty由协议服务器和客户端所组成,可用于快速开发可维护的高性能软件。
1022 0
SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一、导入依赖 4.0.0 org.springframework gs-actuator-service 0.1.0 org.springframework.
1533 0
+关注
幸运券发放
阿里云代金码bieryun.com
369
文章
3
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载