首頁 > Java > java教程 > springBoot中使用@Value取值出現問題如何解決

springBoot中使用@Value取值出現問題如何解決

王林
發布: 2023-05-14 18:55:06
轉載
1459 人瀏覽過

使用@Value取值出現的問題

在springBoot專案中我們一般會把一些路徑或資源寫在設定檔中,方便管理。

但是取得時候有可能會出現一些問題。

file.uploadFolder=E://upload/

#1.一般情況下定義一個欄位

在上面使用@Value("$ {名稱}") 就可以得到值

@Value("${file.uploadFolder}")
    private String uploadFolder;
登入後複製

2.但是通常我們會把它用在工具類別當中

但是字段又被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;
    }
登入後複製

3.工具類別最好加上@Component或其他註解

讓它由spring管理。

記springBoot使用@Value出現的烏龍

先看一下代碼

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中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板