Kotlin配置SpringBoot
文章目录
开发环境
编译环境:Gradle
语言:Kotlin
开发工具:IDEA
创建SpringBoot项目
idea创建
- 选择Spring initialzr
如果访问超时可以用阿里的源https://start.aliyun.com/
- 在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