之前用了Javalin这款框架,觉得有点好的就是,它会在项目启动完毕之后打印出当前项目的访问地址,很直观让人知道项目名和端口号,毕竟有时候项目写多了,打开一个项目还得去配置文件里翻也是十分麻烦
但我还是用回了spring boot,原因在于,spring boot的依赖注入很方便哈哈温馨提示:本篇采用Kotlin语言
读取配置文件信息
首先,便是要实现读取配置文件信息,Kotlin比较特殊,传统Spring Boot使用Java,注解可以注解使用@Value("${xx.properties}")
,但是由于Kotlin中的$
是取值的,用在注解上IDE会报语法错误
经过查阅,是需要在前面写个\
符号即可,然后,读取数值得使用静态变量才可以
我在application的配置文件中定义了一下的项目名和端口号:
server:
port: 9092
servlet:
context-path: /updateService
之后,得写个类,用来自动加载application配置文件中定义的内容,如下面所示,如果你懒,可以直接拿去用
@Component
class AddressProperties {
companion object {
var serverPort: String = ""
var contextPath: String = ""
}
@Value("\${server.servlet.context-path}")
fun setPath(str:String) {
AddressProperties.contextPath = str
}
@Value("\${server.port}")
fun setIsDebug(str:String) {
AddressProperties.serverPort = str
}
}
日志打印
打印就简单了,我们利用上面的类,然后拼接成地址打印出来即可,代码如下所示
fun main(args: Array<String>) {
runApplication<UpdateServiceApplication>(*args)
Logger.getGlobal().info("启动成功,项目地址访问: http://localhost:${AddressProperties.serverPort}${AddressProperties.contextPath}/")
}
PS:上面的地址的类我也是写在Application.kt文件中,源码如下:
@SpringBootApplication
class UpdateServiceApplication
fun main(args: Array<String>) {
runApplication<UpdateServiceApplication>(*args)
Logger.getGlobal().info("启动成功,项目地址访问: http://localhost:${AddressProperties.serverPort}${AddressProperties.contextPath}/")
}
@Component
class AddressProperties {
companion object {
var serverPort: String = ""
var contextPath: String = ""
}
@Value("\${server.servlet.context-path}")
fun setPath(str:String) {
AddressProperties.contextPath = str
}
@Value("\${server.port}")
fun setIsDebug(str:String) {
AddressProperties.serverPort = str
}
}
评论区