手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。

文章目录

  • Kotlin
  • 相关技术选型
  • 一、新建工程
  • 二、配置Gradle
  • 三、创建Application
  • 四、写Service 和 Controller
  • 五、部署到Linux服务器

Kotlin

在使用 Kotlin 的这段时间,被它的简洁,高效,快捷等等特点震撼。作为一个Android开发,目前所有客户端的编码都是用Kotlin了,偶尔自身也会写一点接口,打算采用Kotlin来进行编写,所以写一篇文章记录一下配置全流程。

相关技术选型

名称 选型
编码语言 kotlin
包依赖管理 gradle
后端框架 springboot

一、新建工程

手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第1张图片
需要使用Gradle进行包管理,所以选中Gradle分类下的Java以及Kotlin,点击next
手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第2张图片
接下来可以按照需要改一下,工程存放路径名称等相关内容。之后点击Finish
手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第3张图片
正常来说工程结构,是上图这样就基本可以了。如果没有出现src/main/kotlin这些目录的话,就创建成功了,如果没有出现src/main/kotlin的目录的话就需要手动创建了,具体步骤如下:
手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第4张图片

  1. 右键项目打开Open Module Setting。
  2. 找到右侧的Add Content Root(图上是因为自动生成了src对应的文件所以显示了)。
  3. 再打开的对话框中,依次创建src/main/kotlin resources 文件夹。
  4. 创建好之后左侧应该就会出现对应的文件夹,选中kotlin 然后选中对应的Sources 选中resources 然后选中对应的Resources。
  5. 保存即可。

二、配置Gradle

在build.gradle中添加相关的插件和依赖的库。

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.4.32'
    id 'org.springframework.boot' version '2.2.5.RELEASE'
}

ext {
    libraries = [
    	rxjava                    : "2.2.2",
    	spring_boot               : "2.2.5.RELEASE",
    	fastjson                  : "1.2.51"
    ]
}

group 'org.kotlin.zxf'
version '1.0-SNAPSHOT'

springBoot {
	//设定启动类,
    mainClassName = "com.kotlin.zxf.ApplicationKt"
}


sourceCompatibility = 1.8

def libs = rootProject.ext.libraries

repositories {
    mavenLocal()
    maven {
        setUrl("https://maven.aliyun.com/repository/public/")
    }
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'
    
    implementation "io.reactivex.rxjava2:rxjava:${libs.rxjava}"
    implementation "org.springframework.boot:spring-boot-starter-web:${libs.spring_boot}"
    implementation "org.springframework.boot:spring-boot-starter-data-redis:${libs.spring_boot}"
    implementation "com.alibaba:fastjson:${libs.fastjson}"
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

需要注意的是里面的mainClassName 配置,它负责配置程序启动的类(指向Application)。这个根据自己的工程结构来设置

三、创建Application

注意Application类必须声明为open,因为kotlin默认为final。
上面提到的mainClassName就指向这里的Application.kt文件,因为是kotlin,所以这里增加kt,即"com.kotlin.zxf.ApplicationKt"

@SpringBootApplication
open class Application

fun main(args: Array<String>) {
    SpringApplication.run(Application::class.java, *args)
}

四、写Service 和 Controller

写两个数据类,对结果进行简单封装

data class Status(
    val code: Int = 1,
    val text: String = "请求成功"
)

data class CommonResult<T>(
    //默认状态为请求成功
    val status: Status = Status(),
    val custom: T
)

创建实体类

data class StudentEntity(
    val id: Int,
    val name: String,
    val age: Int)

创建service

interface IUserService {
    fun getAllStudent(): StudentEntity
}

@Service
class UserService : IUserService {
    override fun getAllStudent(): StudentEntity = StudentEntity(1, "zxf", 18)
}

创建Controller

@RestController
@RequestMapping("/message/list")
class StudentController {
    @Autowired
    lateinit var userService: UserService

    @PostMapping("/getAllMessage")
    fun getAllMessage(@RequestParam("params") params: String): CommonResult<StudentEntity> {

        return CommonResult(custom = userService.getAllStudent())
    }
}

创建完Controller之后,就可以运行main进行测试了,上面写了post请求,使用postman模拟进行测试:
手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第5张图片
请求成功了,是不是很简单

五、部署到Linux服务器

部署方式:在Linux使用docker部署Jar包。

  1. 打Jar包,点击工程右侧Gradle,选择运行bootJar。
    手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第6张图片
    运行成功之后,在根目录buid/libs文件夹下会生成对应的jar包,比如我这里生成的是:
    手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第7张图片

  2. 在Linux上安装docker,这里不做过多介绍比较简单,自行百度处理。

  3. 将jar包放到linux上,这里我创建了名字为mockdata的文件夹,用来放jar包(这里将原来的jar包名字里面的下划线替换为了“-”)。
    在这里插入图片描述

  4. 同样在mockdata目录下创建Dockfile。使用vi Dockfile。文件夹内放入如下内容:
    手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第8张图片
    文本内容解析:
    拉取java8
    作者:zxf
    增加yanshi-data-proxy-1.0-SNAPSHOT镜像 并重命名为ysdp.jar
    端口号(和jar包内保持一致就可以了):8080
    使用的命令 java -jar ysdp.jar

  5. 文件创建好后,使用docker make -t ysdp . 命令生成镜像

  6. 然后使用docker run -d -p 8080 : 8080 ysdp运行即可

  7. 可以使用ps -ef | grep ysdp查看运行的进程
    在这里插入图片描述
    运行成功之后,也可以使用postman进行测试。
    手把手教使用kotlin+Gradle+springboot进行后端开发,并通过docker部署到linux。_第9张图片
    一个基于kotlin简单的springboot项目就这样搭建好了。是不是很简单!

你可能感兴趣的:(my,web,docker,linux,kotlin,springboot)