使用Kotlin开发SpringBoot项目

Kotlin配置SpringBoot

开发环境

编译环境:Gradle

语言:Kotlin

开发工具:IDEA

创建SpringBoot项目

idea创建

  1. 选择Spring initialzr

如果访问超时可以用阿里的源https://start.aliyun.com/

  1. 在dependencies中的Web中选择Spring Web点击创建即可

线上创建

springBoot官网创建可能进不去,可以选择阿里的在线创建

https://start.aliyun.com/bootstrap.html

运行SpringBoot的jar包

java -jar xxx.jar

使用Jetty代替Tomcat

//1.
implementation("org.springframework.boot:spring-boot-starter-web")
{
    //使用exclude去除Tomcat运行的依赖模块
    exclude(group="org.springframework.boot", module = "spring-boot-starter-tomcat")
}

//2.
//添加jetty依赖
implementation("org.springframework.boot:spring-boot-starter-jetty")

SpringBoot配置文件

application.properties

server.port=7017

application.yml

server:
  port: 7017

application.yaml

server:
  port: 7017

通常使用yml

三种配置的优先级:

properties>yml>yaml

yml文件数据格式

#对象
server:
  port: 7017

#普通数据
user: root

student:
  name: 李华
  age: 12
#数组
  like:
    - 乒乓球
    - 篮球
    - 足球

读取yml文件数据

自动注入内容

    @Value("\${user}")
    lateinit var user:String

    @Value("\${server.port}")
    var port:Int=0

    @Value("\${student.like[1]}")
    lateinit var like:String

获取配置文件对象

@RestController
@RequestMapping("books")
class BookController {
    @Autowired
    lateinit var environment:Environment

    @GetMapping("/{id}")
    fun getById(@PathVariable id:Int):String{
        val port = environment.getProperty<Int>("server.port")
        val user = environment.getProperty<String>("user")
        val like=environment.getProperty<String>("student.like[1]")
        println(port)
        println(user)
        return "hello"
    }
}

自定义对象读取

//自定义类
@ConfigurationProperties(prefix = "student")
@Component
class Student {
    //变量名要和配置文件中的变量名对应
    lateinit var name:String
    lateinit var like:Array<String>
}

//控制器
@RestController
@RequestMapping("books")
class BookController {
    @Autowired
    lateinit var student: Student

    @GetMapping("/{id}")
    fun getById(@PathVariable id:Int):String{
        println(student.like.size)
        println(student.name)
        return "hello"
    }
}

配置多环境模式

#当前开发模式
spring:
  profiles:
    active: test

#test模式
---
spring:
  config:
    activate:
      on-profile: test
server:
  port: 8081

#开发模式
---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8082
  
#上线模式
---
spring:
  config:
    activate:
      on-profile: comp
server:
  port: 7017

jar包运行临时改变属性

单个指令

java -jar xxx.jar --spring.profiles.active=test

多个指令

java -jar xxx.jar --spring.profiles.active=test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于KotlinSpring Boot应用程序可以通过创建一个Kotlin类,并使用@SpringBootApplication注解来标记为启动类。例如,可以创建一个名为KotlinSpringBootApplication.kt的文件,其中包含以下代码: ```kotlin @SpringBootApplication class KotlinSpringBootApplication fun main(args: Array<String>) { runApplication<KotlinSpringBootApplication>(*args) } ``` 这个类使用了@SpringBootApplication注解来标记为Spring Boot应用程序的启动类。在main函数中,使用runApplication函数来运行应用程序。这样就可以启动基于KotlinSpring Boot应用程序了。\[1\] 基于KotlinSpring Boot应用程序可以与Spring Boot广泛应用于企业级应用和微服务开发Spring Cloud微服务框架就是在Spring Boot基础上开发的。此外,很多开源项目也提供了与Spring Boot的集成,例如rocketmq-spring-boot-starter,方便用户使用。\[3\] #### 引用[.reference_title] - *1* *3* [干货丨KotlinSpring Boot中的应用](https://blog.csdn.net/broadview2006/article/details/109841094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Kotlin + SpringBoot + JPA 服务端开发](https://blog.csdn.net/qq_34285557/article/details/128358514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值