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はデフォルトのマッピングを変更します.たとえば、私は/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メソッドを書き換えるだけです.
マッピングパスをaddResourceHandlerで追加し、addResourceLocationsでパスを指定します.カスタムmyフォルダのelephant.にアクセスします.jpgピクチャのアドレスはhttp://localhost:8080/my/elephant.jpg
外部のディレクトリを指定するのも簡単な場合は、addResourceLocationsで直接指定すればいいです.コードは次のとおりです.
addResourceLocationsはファイルが配置されたディレクトリを指し、addResourceHandlerは外部に露出したアクセスパスを指す
ページジャンプaddViewControllers
以前SpringMVCを書いていたとき、1ページアクセスする必要がある場合は、Controllerクラスを書いてから、もう1つの方法を書いてページにジャンプする必要があり、面倒な感じがしましたが、WebMvcConfigurerAdapterのaddView Controllersメソッドを書き換えると効果的です
値は、ここでaddViewControllersメソッドを書き換えると、WebMvcAutoConfigurationのaddViewControllers(このメソッドではSpring Bootがindex.htmlに"/"をマッピングする)を上書きすることはありません.これは、私たち自身の構成とSpring Bootの自動構成が同時に有効であることを意味します.これも、自分のMVC構成を追加する方法を推奨します.
本文
前の章では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構成を追加する方法を推奨します.