Spring配置文件新加的配置不生效

簡介

在spring項目的yml配置文件中新加了一個自定義屬性,結果在Global全局配置中獲取不到值, 經過兩個多小時, 踩坑發現是粗心大意造成的

相關代碼

# 項目相關配置
project:
  # 名稱
  name: project name
  # 版本
  version: 1.1.0
  # 文件路徑前綴 
  filePrefix: http://localhost:8080
/**
 * 全局配置類
 * @author admin
 */
@Component
@ConfigurationProperties(prefix = "project")
public class Global
{
    /** 名稱 */
    private static String name;
	/** 版本 */
    private static String version;
    /** 文件路徑前綴 */
    private static String filePrefix;
    
    public static String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        Global.name = name;
    }

    public static String getVersion()
    {
        return version;
    }

    public void setVersion(String version)
    {
        Global.version = version;
    }
    public static String getFilePrefix()
    {
        return filePrefix;
    }

	public static void setFilePrefix(String filePrefix)
	{
	    Global.filePrefix = filePrefix;
	}

}

期間我用IDE Generate -> getter setter生成 filePrefix 的get,set方法, 坑就在這了, 常規思維會認爲這樣沒錯, 但我忽視 filePrefix是一個靜態變量, setter方法靜態的spring無法自動注入值.

所以這裏應該把setFilePrefix方法的static去掉

public void setFilePrefix(String filePrefix)
{
	Global.filePrefix = filePrefix;
}

最後

代碼開發還需細心耐心, 一個粗心小問題最是折磨人, 希望大家少踩坑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章