ホームページ > Java > &#&チュートリアル > springBoot で @Value を使用する場合の問題を解決する方法

springBoot で @Value を使用する場合の問題を解決する方法

王林
リリース: 2023-05-14 18:55:06
転載
1494 人が閲覧しました

@Value を使用して値を取得することで生じる問題

springBoot プロジェクトでは、通常、管理を容易にするために構成ファイルにパスまたはリソースを書き込みます。

ただし、入手時に問題が発生する可能性があります。

file.uploadFolder=E://upload/

1. 通常はフィールドを定義します

use @Value("$ {name}" ) 値

1

2

@Value("${file.uploadFolder}")

    private String uploadFolder;

ログイン後にコピー

2 を取得できます。ただし、通常はツール クラスで使用します

ただし、フィールドは static によって変更され、静的変数になります。値を取得できない場合は、このメソッドを使用します。取得した場合、取得したものは null です。

そこで、値の取得方法を変更する必要があります。値は次のように取得できます。 set メソッドでは static を使用しないように注意してください。 ! !

1

2

3

4

5

6

7

8

private static String uploadFolder;

public static String getUploadFolder() {

        return uploadFolder;

    }

    @Value("${file.uploadFolder}")

    public  void setUploadFolder(String uploadFolder) {

        Base64Utils.uploadFolder = uploadFolder;

    }

ログイン後にコピー

3. Spring で管理できるように、ツール クラスに @Component またはその他のアノテーション

を追加することをお勧めします。

springBoot が @Value を使用したときに発生したウーロンを覚えておいてください

最初にコードを見てください

1

2

3

4

5

server.port=8007

#mysql配置

url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8

username=root

password=root

ログイン後にコピー

これは、application.properties に入力された関連する設定情報です。構成は外部構成情報として使用されます。

次に、必要に応じて次のように使用します。

1

2

3

4

5

6

7

8

9

10

11

@Configuration

public class JfinalDb

{

    @Value("${url}")

    private String dbUrl;

    @Value("${username}")

    private String dbUName;

    @Value("${password}")

    private String dbPwd;

...

}

ログイン後にコピー

これを使用すると、非常に奇妙な問題が発生します。つまり、名前付け設定のユーザー名とパスワードは正しく、ローカル接続も正しいです。 , しかし常に 接続認証に失敗し、ユーザー名がrootではないというエラーです。

最後に dbUName を出力したところ、 は root ではなく、私のホスト名であることがわかりました。

したがって、ここでは、application.properties ファイル内の名前 username をカスタマイズしないように注意してください。期待する結果が得られないためです。

以上がspringBoot で @Value を使用する場合の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート