@Value註解取不到值的幾種情況

       在spring的框架中,我們經常使用@Value註解來獲取定義在application.properties的屬性值,正常情況下是可以輕鬆的獲取到值的,但是有幾種特殊情況下是獲取不到值的,在這記錄下,以防止以後犯錯誤。正常獲取的用法如下:

application.properties中定義一個屬性值:

正常情況下在代碼裏面這樣獲取:

@Value("${ftpIP}")
private String ftpIP;

幾種獲取不到值的特殊情況如下:

       情況一:使用static或者final修飾了tagValue

@Value("${ftpIP}")
private static String ftpIP;
	
@Value("${ftpUserName}")
private final String ftpUserName;

       情況二:用該註解的類上面沒有加註解,即不能被spring管理

public class FTPManagerService {

    @Value("${ftpIP}")
	private static String ftpIP;

}

       情況三:類被new新建了實例,而沒有使用@Autowired

public class FTPManagerService {

    @Value("${ftpIP}")
	private static String ftpIP;

}

public class Test{
    /*錯誤用法*/
    FTPManagerService  f = new FTPManagerService ();

    /*正確用法*/
    @Autowired
    FTPManagerService  f2;
}

參考博客地址:https://www.cnblogs.com/yysbolg/p/10642330.html

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