Spring Bootで発生した問題を記録

2305 ワード

Spring Bootで発生した問題を記録
1.jarを実行中にクラスパスリソースが見つかりません
  • 問題説明:springbootをjarにパッケージ化した後にclasspathの下のファイルを取得できません
  • 理由:STSのアプリケーションを実行するときにsourcesの下のファイルを取得するのは有効ですが、アプリケーションを構築して実行可能jarから実行すると動作しません.これはspringbootがファイルシステムのリソースしか取得できないためです.IDEにコードを書くときにファイルシステムを実行しますが、パッケージは圧縮ファイルにアクセスするパスです.
  • ソリューション:springのClassPathResourceのgetInputStream()の代わりにspringのClassPathResourceのgetInputStream()を使用することを推奨します.次の
  • です.
    ClassPathResource classPathResource = new ClassPathResource("static/something.txt");
    InputStream inputStream = classPathResource.getInputStream();
    File somethingFile = File.createTempFile("test", ".txt");
    try {
        FileUtils.copyInputStreamToFile(inputStream, somethingFile);
    } finally {
        IOUtils.closeQuietly(inputStream);
    }
    

    Springbootが提供するソリューション