spring-boot 項目日志打印項目版本和構(gòu)建時間

功能

在spring-boot項目啟動時,將會打印項目的基本信息:服務(wù)名稱,pom中的項目版本,以及jar包構(gòu)建的時間,方便檢測服務(wù)是否更新到正確的版本,也可以提供接口訪問

實現(xiàn)步驟(steps 2)

step 1 添加服務(wù)啟動的前置執(zhí)行代碼



import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

import javax.annotation.PostConstruct;

/**
 * 初始化bean之前執(zhí)行即服務(wù)啟動的前置代碼
 */
@Configuration
@Slf4j
public class BeanPostConfig implements BeanPostProcessor {
    @Value("${project.version}")
    private String serviceVersion;
    @Value("${project.builddate}")
    private String serviceBuildDate;
    @Value("${spring.application.name}")
    private String serviceName;

    @Autowired
    private Environment environment;

    @PostConstruct
    public void  projectInfo(){
        StringBuffer projectInfo = new StringBuffer();
        projectInfo.append("\n=================project=================\n");
        projectInfo.append(String.format("\nservice name:%s\n",serviceName));
        projectInfo.append(String.format("\nservice version:%s\n",serviceVersion));
        projectInfo.append(String.format("\nservice build date:%s\n",serviceBuildDate));
        projectInfo.append("\n=================project=================\n");
        log.info(projectInfo.toString());

    }

}

step 2 application.yml配置變量

project:
  version: @project.version@
  builddate: @maven.build.timestamp@

注意獲取maven的變量是使用@@,并且在@Value中使用@@是無效的,bootstrap.yml也無效,具體原理以后在了解一下

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容