设置Spring Boot项目启动打印首页地址(Kotlin)

Stars-one 2020年12月14日 245次浏览 本篇字数为2,123字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2020/12/14/spring-boot-print-address


之前用了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
    }
}

参考