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

1 篇文章 0 订阅

Kotlin

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

相关技术选型

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

一、新建工程

在这里插入图片描述
需要使用Gradle进行包管理,所以选中Gradle分类下的Java以及Kotlin,点击next
在这里插入图片描述
接下来可以按照需要改一下,工程存放路径名称等相关内容。之后点击Finish
在这里插入图片描述
正常来说工程结构,是上图这样就基本可以了。如果没有出现src/main/kotlin这些目录的话,就创建成功了,如果没有出现src/main/kotlin的目录的话就需要手动创建了,具体步骤如下:
在这里插入图片描述

  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模拟进行测试:
在这里插入图片描述
请求成功了,是不是很简单😁

五、部署到Linux服务器

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

  1. 打Jar包,点击工程右侧Gradle,选择运行bootJar。
    在这里插入图片描述
    运行成功之后,在根目录buid/libs文件夹下会生成对应的jar包,比如我这里生成的是:
    在这里插入图片描述

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

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

  4. 同样在mockdata目录下创建Dockfile。使用vi Dockfile。文件夹内放入如下内容:
    在这里插入图片描述
    文本内容解析:
    拉取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简单的springboot项目就这样搭建好了。是不是很简单!👀

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Kotlin是一种静态类型的编程语言,具有JVM的可移植性和Java的互操作性。Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的框架,它提供了快速开发应用程序所需的所有功能。JavaFX是一个用于创建丰富客户端应用程序的框架,它提供了丰富的UI组件和布局管理器。 要使用Kotlin Spring Boot和JavaFX开发桌面应用程序,需要完成以下步骤: 1. 创建一个Kotlin Spring Boot项目。可以使用Spring Initializr创建项目,选择Kotlin和Spring Web依赖项。 2. 添加JavaFX依赖项。可以在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>16</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>16</version> </dependency> ``` 3. 创建一个JavaFX应用程序类。可以使用JavaFX的Application类作为应用程序的入口点。在这个类中,可以创建UI组件,处理事件和管理应用程序的状态。以下是一个简单的JavaFX应用程序类的示例: ```kotlin import javafx.application.Application import javafx.fxml.FXMLLoader import javafx.scene.Parent import javafx.scene.Scene import javafx.stage.Stage class MyApplication : Application() { override fun start(primaryStage: Stage?) { val root: Parent = FXMLLoader.load(javaClass.getResource("/fxml/main.fxml")) primaryStage?.title = "My Application" primaryStage?.scene = Scene(root) primaryStage?.show() } companion object { @JvmStatic fun main(args: Array<String>) { launch(MyApplication::class.java, *args) } } } ``` 4. 创建FXML布局文件。FXML是一种XML格式的文件,用于定义UI组件和布局。可以使用Scene Builder或手动创建FXML文件。以下是一个简单的FXML布局文件的示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:id="root" prefHeight="400" prefWidth="600"> <Button fx:id="button" text="Click me" layoutX="250" layoutY="180" /> </AnchorPane> ``` 5. 在JavaFX应用程序类中加载FXML布局文件。可以使用FXMLLoader类加载FXML布局文件,并将其添加到应用程序的场景图中。以下是一个示例: ```kotlin val root: Parent = FXMLLoader.load(javaClass.getResource("/fxml/main.fxml")) primaryStage?.title = "My Application" primaryStage?.scene = Scene(root) primaryStage?.show() ``` 6. 处理UI事件。可以在JavaFX应用程序类中添加事件处理程序,以响应UI组件的事件。以下是一个处理按钮单击事件的示例: ```kotlin button.setOnAction { event -> println("Button clicked!") } ``` 7. 使用Spring Boot管理应用程序的状态。可以使用Spring Boot的依赖注入和管理功能来管理应用程序的状态和依赖关系。可以在Spring Boot的配置类中定义bean,然后在JavaFX应用程序类中使用它们。以下是一个简单的Spring Boot配置类的示例: ```kotlin @Configuration class AppConfig { @Bean fun myService(): MyService { return MyService() } } ``` 8. 在JavaFX应用程序类中使用Spring Boot的依赖注入功能。可以在JavaFX应用程序类的构造函数中注入Spring Boot管理的bean。以下是一个示例: ```kotlin class MyApplication : Application() { @Autowired lateinit var myService: MyService // ... } ``` 这就是使用Kotlin Spring Boot和JavaFX开发桌面应用程序的基本步骤。当然,还有很多其他的细节和技术,可以根据需要进行学习和应用。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pumpkin的玄学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值