SpringBootで静的リソースをどのように扱いますか?
Spring Bootには、デフォルトの静的リソースハンドラが用意されており、静的リソースファイルを簡単に扱うことができます。Spring Bootの設定ファイルであるapplication.propertiesやapplication.ymlなどに、spring.resources.static-locationsプロパティを設定することで、静的リソースファイルの場所を指定することができます。デフォルトでは、Spring Bootはclasspath:/META-INF/resources/、classpath:/resources/、classpath:/static/、classpath:/public/ディレクトリ内から静的リソースファイルを探します。
src/main/resources/staticディレクトリに静的リソースファイルを配置すると、Spring Bootが自動的にこれらのファイルを公開し、ブラウザから直接アクセスできます。例えば、example.jpgという名前の画像ファイルをsrc/main/resources/static/images/ディレクトリに配置すると、http://localhost:8080/images/example.jpg にアクセスすることで画像を表示できます。
WebMvcConfigurerインターフェースを実装して、デフォルトの静的リソースハンドラー以外にカスタムの静的リソースハンドラーを設定することもできます。addResourceHandlersメソッドを上書きして、カスタムの静的リソースファイルのパスとURLマッピングを構成することができます。例:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/custom/**").addResourceLocations("classpath:/custom/");
}
}
上記のコード片は、”custom”という名前のURLマッピングを設定し、クラスパス内の”/custom/”ディレクトリにある静的リソースファイルを公開しています。例えば、http://localhost:8080/custom/example.jpg にアクセスすることで、example.jpg ファイルを表示できます。