在springBoot專案中我們一般會把一些路徑或資源寫在設定檔中,方便管理。
但是取得時候有可能會出現一些問題。
file.uploadFolder=E://upload/
在上面使用@Value("$ {名稱}") 就可以得到值
@Value("${file.uploadFolder}") private String uploadFolder;
但是字段又被static修飾成為靜態變量,使用這種方法就取不到值,我們拿到的就為null。
因此我們就要換一種取值方式,像下面這樣就可以取到了。記得set方法不要帶static! ! !
private static String uploadFolder; public static String getUploadFolder() { return uploadFolder; } @Value("${file.uploadFolder}") public void setUploadFolder(String uploadFolder) { Base64Utils.uploadFolder = uploadFolder; }
讓它由spring管理。
server.port=8007 #mysql配置 url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8 username=root password=root
這是application.properties中填寫的相關配置信息,其中mysql配置是作為外部配置資訊來用的。
@Configuration public class JfinalDb { @Value("${url}") private String dbUrl; @Value("${username}") private String dbUName; @Value("${password}") private String dbPwd; ... }
使用的時候出現很詭異的問題,那就是命名設定的username和password是對的,透過本地連線也是對的,但是總是報連線認證失敗的錯誤,而且使用者名稱也不是root。
最後我將dbUName印出來發現,完全不是root,而是我的主機名稱!
所以這裡,切記不要在application.properties檔案中自訂名稱username,因為你取不到你想要的結果。
以上是springBoot中使用@Value取值出現問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!