Spring boot静的リソースの構成


SpringBootの静的リソースのサポートと重要なクラスWebMvcConfigurerAdapter.
本文
前の章ではSpringBootの静的リソースのデフォルトサポートについても簡単に説明しましたが、今日はデフォルトのサポートとカスタム拡張の実現方法について詳しく説明します.
デフォルトのリソースマッピング
Spring Bootのデフォルトでは、WebMvcAutoConfigurationでさまざまなプロパティを構成する静的リソース処理が提供されています.
Spring Bootのデフォルト構成を使用することをお勧めします.静的リソースマッピングは次のとおりです.
classpath:/META-INF/resources classpath:/resources classpath:/static classpath:/public静的リソースのマッピングパス.優先順位は、META-INF/resources>resources>static>public
#      
spring.mvc.static-path-pattern=
#      classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
spring.resources.static-locations=          ,          

springを修正することができます.mvc.static-path-patternはデフォルトのマッピングを変更します.たとえば、私は/dududu/**に変更し、実行時にアクセスします.http://lcoalhost:8080/dudu/index.html indexに対応します.htmlページ.
Spring BootのWeb構成を引き継ぐ
Spring Bootが提供するSping MVCが要求に合致しない場合、1つの構成クラス(@Configurationが注記されているクラス)に@EnableWebMvc注記を加えることで、完全に自己制御されたMVC構成を実現することができる.
もちろん、通常、Spring Bootの自動構成は私たちの多くのニーズに合っています.Spring Bootの利便性を維持する必要があり、追加の構成を追加する必要がある場合は、@EnableWebMvc注釈を使用することなく、構成クラスを定義してWebMvcConfigurerAdapterを継承できます.
ここでは、このWebMvcConfigurerAdapterというクラスについて言及します.このクラスを書き換える方法は、追加の構成を追加することができます.ここでは、いくつかの一般的な構成について説明します.
カスタムリソースマッピングaddResourceHandlers
たとえば、静的リソースマッピングディレクトリをカスタマイズするには、addResourceHandlersメソッドを書き換えるだけです.
@Configuration
public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
    /**
     *         
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/my/**").addResourceLocations("classpath:/my/");
        super.addResourceHandlers(registry);
    }
}

マッピングパスをaddResourceHandlerで追加し、addResourceLocationsでパスを指定します.カスタムmyフォルダのelephant.にアクセスします.jpgピクチャのアドレスはhttp://localhost:8080/my/elephant.jpg
外部のディレクトリを指定するのも簡単な場合は、addResourceLocationsで直接指定すればいいです.コードは次のとおりです.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
                                    registry.addResourceHandler("/my/**").addResourceLocations("file:E:/my/");
    super.addResourceHandlers(registry);
}

addResourceLocationsはファイルが配置されたディレクトリを指し、addResourceHandlerは外部に露出したアクセスパスを指す
ページジャンプaddViewControllers
以前SpringMVCを書いていたとき、1ページアクセスする必要がある場合は、Controllerクラスを書いてから、もう1つの方法を書いてページにジャンプする必要があり、面倒な感じがしましたが、WebMvcConfigurerAdapterのaddView Controllersメソッドを書き換えると効果的です
/**
     *                Controller   ,         
     *                ,    http://localhost:8080/toLogin    login.jsp   
     * @param registry
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/toLogin").setViewName("login");
        super.addViewControllers(registry);
    }

値は、ここでaddViewControllersメソッドを書き換えると、WebMvcAutoConfigurationのaddViewControllers(このメソッドではSpring Bootがindex.htmlに"/"をマッピングする)を上書きすることはありません.これは、私たち自身の構成とSpring Bootの自動構成が同時に有効であることを意味します.これも、自分のMVC構成を追加する方法を推奨します.