「spring.datasource.password」の下のプロパティを java.lang.String にバインドできませんでした

1. ピットを記録する

jasypt を構成すると、すべてがうまくいき、pom がインポートされ、プロジェクトが開始されました。
オンライン検索データ jar パッケージから秘密キーの手動設定を開始します

java -jar -Djasypt.encryptor.password=1234qwer test.jar

ただし、デプロイすると、このエラーが表示されます。

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'spring.datasource.password' to java.lang.String:

    Reason: Failed to bind properties under 'spring.datasource.password' to java.lang.String

Action:

Update your application's configuration

ここに画像の説明を挿入

2. クエリ情報

デプロイメントが開始され、エラーが報告されます。理由を見つけます:
1. 構成、スペースなどを確認します。問題は見つかりませんでした。
2. バージョンを確認します。バージョンは 2.1.2 で、問題はありません。
3. 構成を分離するので、ポートなどを設定します。エラーレポートによると、Djasypt 構成を jar の背後に置きます。

3. 分析とエラー報告

エラーメッセージ「spring.datasource.password」のプロパティをjava.lang.String
にバインドできませんでした

言い換えれば、私の構成は文字列ではありません。
したがって、次のように秘密キーを引用符で囲みます

java -jar -Djasypt.encryptor.password='1234qwer' test.jar

問題を完璧に解決します。

4. まとめ

プロジェクトの元の開始コマンドを貼り付けます

nohup java -jar /app/web.jar --server.port=8080 --spring.config.location=/app/web.yml >> /app/web.out 2>&1 &

エラーを報告するのは非常に簡単ですが、調査には長い時間がかかります。
その理由はやはり固定観念にあります。port の設定や yml の設定に関係なく、= 以降の内容は処理されないため、直接識別できることは難しくありません。
この構成を従来の考え方で考えると、その理由を見つけるのは困難です。
同様の問題が発生した場合は、頭を整理して問題の原因から例外を分析することをお勧めします。範囲を指定すると、原因の特定が容易になります。

SpringBoot は jasypt を統合し、yml 構成ファイルを暗号化します: https://blog.csdn.net/qq_38254635/article/details/132026841
参考リンク:
https://stackoverflow.com/questions/69255586/djasypt-encryptor-password-mavens-option -doesnt-work
https://www.cnblogs.com/nmdzwps/p/16291553.html
https://blog.csdn.net/libusi001/article/details/108465034
https://blog.csdn.net/weixin_43461040/記事/詳細/125542216

おすすめ

転載: blog.csdn.net/qq_38254635/article/details/132027639