Spring Boot がリソース ディレクトリ内のファイルを取得する 3 つの方法

Spring Boot プロジェクトでは、多くの場合、resourcesディレクトリ内のファイルを取得する必要があります。これらのファイルには、構成ファイル、テンプレート ファイル、静的リソースなどが含まれる場合があります。resourcesこの記事では、ディレクトリ内のファイルを取得するためによく使用される 3 つの方法を紹介します。

1.ResourceLoaderインターフェースの使用

ResourceLoaderclasspathこのインターフェースは、以下のリソースを含むさまざまなリソースをロードするために Spring フレームワークによって提供されるインターフェースです。Spring Boot では、ディレクトリ内のファイルはResourceLoader依存関係注入インターフェイスを通じて取得できます。resources以下に例を示します。

import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;

@Component
public class YourComponent {
    
    
    
    private final ResourceLoader resourceLoader;
    
    public YourComponent(ResourceLoader resourceLoader) {
    
    
        this.resourceLoader = resourceLoader;
    }
    
    public void getResource() throws IOException {
    
    
        Resource resource = resourceLoader.getResource("classpath:your-file.txt");
        InputStream inputStream = resource.getInputStream();
        // 对文件进行操作,比如读取内容等
    }
}

上記のコードでは、ResourceLoaderコンストラクターを通じてインターフェイスのインスタンスを挿入しました。次に、resourceLoader.getResource("classpath:your-file.txt")メソッドを使用してyour-file.txtファイルのResourceオブジェクトを取得します。Resourceオブジェクトを通じて、ファイルの入力ストリームを取得し、それを操作できます。

2.ClassPathResourceクラスの使用

ClassPathResourceこのクラスは、クラスパスの下にリソースをロードするために Spring フレームワークによって提供されるクラスです。Spring Boot では、ClassPathResourceクラスを使用してresourcesディレクトリ内のファイルを取得できます。以下に例を示します。

import org.springframework.core.io.ClassPathResource;

public void getResource() throws IOException {
    
    
    ClassPathResource resource = new ClassPathResource("your-file.txt");
    InputStream inputStream = resource.getInputStream();
    // 对文件进行操作,比如读取内容等
}

上記のコードでは、ClassPathResourceクラスを使用してyour-file.txtファイルを取得します。クラスパスから直接ファイルを検索し、Resourceオブジェクトを返します。

3.使用ResourceUtils.getFile()方法

ResourceUtilsクラスは、リソースを操作するために Spring フレームワークによって提供されるユーティリティ クラスです。Spring Boot では、メソッドを使用してディレクトリ内のファイルResourceUtils.getFile()を取得できます。resources以下に例を示します。

import org.springframework.util.ResourceUtils;

public void getResource() throws IOException {
    
    
    File file = ResourceUtils.getFile("classpath:your-file.txt");
    // 对文件进行操作,比如读取内容等
}

上記のコードでは、ResourceUtils.getFile()メソッドを使用してyour-file.txtファイルを取得します。Fileファイル上で直接操作できるオブジェクトを返します。

4. 注意事項

上記の方法を使用してresourcesディレクトリ内のファイルを取得する場合は、次の点に注意してください。

  • ファイルのパスと名前が正しいこと、およびファイルがresourcesディレクトリ内にあることを確認してください。
  • ResourceLoaderを使用する場合

おすすめ

転載: blog.csdn.net/qq_39997939/article/details/130976975