マッド神は言っSpringBoot10:静的リソースを持つWeb開発契約

 マッド神はもちろんのSpringBootシリーズはSpringBoot2.2.5バージョンに基づいて、ピンク歓迎注意怒っを学ぶために転送され、理解しやすい、と述べました。

マイクロチャンネル公衆数は:マッド神は言った(開始)    嗶哩嗶哩:マッド神は言ったJava(ビデオ)

作者の許可なしに転載を禁止されています

Web開発者は探検します

簡単な紹介

さて、次回、聞かせてのは、次の章から、SpringBootとWeb開発を学び始める学生は、その後、我々は実部の内容に属します。

実際に使用することは非常にシンプルなSpringBoot何か、SpringBoot最大の特徴は、自動組立ですので。

使用SpringBootは、以下の工程:

1、私たちに必要なモジュールを選択し、SpringBootアプリケーションを作成し、SpringBootは、当社のニーズが自動的に構成されたモジュールにデフォルト設定されます

図2は、手動で起動して実行することができる構成ファイル内の設定項目の一部を構成します

3、、以前の設定に多くのことを考慮する必要がビジネスのコードを書いていないに焦点を当てます。

開発に精通して、学習の前に自動設定の原則を理解するために従事する必要があります!

例えば、設定さSpringBoot何最後に私たちを助けるには?私たちは、変更することはできませんか?私たちは、設定を変更することができますか?私たちは、拡大することはできますか?

  • 容器への自動設定コンポーネント:***自動設定

  • 概要自動設定、パッケージ構成ファイル:***プロパティ

以下のようになります。何も、自動組立の原則を見ていません!

その後、我々はすぐに開発を始めることができるようにすることを、小さなテストプロジェクトの単一のプロジェクトでした!

静的リソースを扱います

静的リソースマッピング規則

まず、我々は、HelloWorldプログラムを見直し、共通SpringBootプロジェクトをビルド!

書き込み要求は、それを処理するために、どのようにこのSpringBoot、我々はそのようなCSS、jsファイルやその他の文書などの静的リソースで多くのプロジェクトを持って、我々は、フロントエンドリソースを紹介したいことを、非常に単純なのですか?

我々は、Webアプリケーションであれば、我々は、内部にこのガイドページ内のすべての権利になる前に、当社のメインの下では、Webアプリケーションを持っています!道を梱包する方法をジャーにある。しかし、我々は今、ポンポンは、この方法はSpringBootは、書き込みページに私たちに来ることができないのですか?我々はできるもちろん、しかしSpringBoot位置に配置された静的リソースのために、が提供されます!

この静的リソースマッピング規則に関するましょう話:

コンフィギュレーション・クラスのSpringBootで、SpringMVC WebMvcAutoConfigurationのウェブ設定;

我々は、多くの設定があります行くとWebMvcAutoConfigurationAdapterを見ることができます。

方法があります:addResourceHandlersは との契約にリソースを追加します

@Override
 公共 のボイドaddResourceHandlers(ResourceHandlerRegistryレジストリ){
     IF(!これは.resourceProperties.isAddMappings()){
         // 処理するデフォルトのリソースでは無効になっ 
        logger.debug( "障害者の扱いデフォルトのリソースを" );
         リターン; 
    } 
    // キャッシュ制御 
    期間cachePeriod = この.resourceProperties.getCache()getPeriod();. 
    cacheControl cacheControl = この.. .resourceProperties.getCache()getCachecontrol()toHttpCacheControlは();
     // webjarsが配置された
    IF( "/ webjars / **"(registry.hasMappingForPatternを!)){ 
        customizeResourceHandlerRegistration(registry.addResourceHandler( "/ webjars / **" 
                                             .addResourceLocations( "クラスパス:/ META-INF /リソース/ webjars /" 
                                             .setCachePeriod(getSeconds(cachePeriod)。)setCacheControl(cacheControl))。
    } 
    // 静态资源配置 
    ストリングstaticPathPattern = この.mvcProperties.getStaticPathPattern()。
    もし(!registry.hasMappingForPattern(staticPathPattern)){ 
        customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern) 
                                             .addResourceLocations(getResourceLocations(この .resourceProperties.getStaticLocations()))
                                             .setCachePeriod(getSeconds(cachePeriod))setCacheControl(cacheControl))。
    } 
}

ソースコードを読む:例えば、/ webjarsのすべて/ **、クラスパスする必要があります/ META-INF /リソース/ webjars /対応するリソースを見つけます。

それは何であるWebjars?

Webjarsジャーパッケージは、基本的に私たちの静的リソースを導入する方法であり、我々は静的リソースファイルをインポートするために持っていた、あなたは直接インポートすることができます。

使用SpringBoot Webjarsを使用する必要性、我々は検索に行くことができます。

ウェブサイト:https://www.webjars.org

jQueryのを使用するには、我々は唯一頼ることができますjQueryのポンポンの対応バージョンを導入する必要があります!

< 依存> 
    < groupIdを> org.webjars </ groupIdを> 
    < たartifactId > jqueryの</ たartifactId > 
    < バージョン> 3.4.1 </ バージョン> 
</ 依存関係>

インポートが完了すると、webjarsのディレクトリ構造とファイルアクセスJquery.jsを見ます!

アクセス:としては、長い静的リソースとして、SpringBootはここに私たちを訪問し、対応するリソースへのパスを見つけるします。http:// localhost:8080 / webjars / jqueryの/ 3.4.1 / jquery.js

第二の静的リソースマッピング規則

我々はそれが独自の静的リソースを使用するプロジェクト場合はどのようにそれをインポートするには?私たちは、コードの次の行を参照してください。

私たちは、staticPathPattern第2のマッピングルールを見つけるために行ってきました:/ **、現在のアクセスを任意のリソースプロジェクトは、それは我々が分析に見て指すことができ、ResourcePropertiesのにこのクラスを移動します。

// 入力方法の
パブリック文字列[] getStaticLocationsは(){
     戻り 、この.staticLocationsを; 
} 
// 対応する値を見つける
プライベート文字列を[] = staticLocations CLASSPATH_RESOURCE_LOCATIONS;
 // パスを見つける
プライベート 静的 最終列[] CLASSPATH_RESOURCE_LOCATIONS = { 
    「CLASSPATH:/ META -INF /リソース/ " " CLASSPATH:/リソース/ " " CLASSPATH:/静的/ " " CLASSPATH:/公共/ "  
};

ResourcePropertiesのは、私たちと静的なリソースに関連するパラメータを設定することができ、それをポイントは、上記の配列の内容フォルダのリソースを見つけることがあります。

したがって、次の4つのディレクトリは、我々が認識静的リソースに保存することができます結論づけ:

"クラスパス:/ META-INF /リソース/" 
"クラスパス:/リソース/" 
"クラスパス:/静的/" 
"クラスパス:/公共/"

私たちは、静的なファイルを保存することができ、リソースのルートディレクトリに対応するフォルダを作成することができます。

例えば、我々が訪問HTTP:// localhostを:8080 / 1.jsが、彼は静的リソースファイルに対応するこれらのフォルダを見つけるために行くだろう。

カスタム静的リソースパス

我々はまた、我々は、静的リソースファイル、設定application.propertiesを配置する必要があるフォルダを指定するために、独自の構成ファイルに目を通すことができます。

spring.resources.static-場所=クラスパス:/コーディング/、クラスパス:/国光客運/

フォルダへの静的なパスの独自の定義と、それは自動的に元の無効を設定します!

ホーム治療

静的リソースフォルダが終わった後、私たちは、ソースを見下し続けます!あなたはそれが私たちの家で、マップのウェルカムページを見ることができます!

@Bean
 公共WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContextのApplicationContextの、
                                                           FormattingConversionService mvcConversionService、
                                                           ResourceUrlProvider mvcResourceUrlProvider){ 
    WelcomePageHandlerMapping welcomePageHandlerMapping = 新しいWelcomePageHandlerMapping(
         新しい TemplateAvailabilityProviders(ApplicationContextの)、ApplicationContextの、getWelcomePage()// getWelcomePage获得欢迎页
        この.mvcProperties.getStaticPathPattern())。
    welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService、mvcResourceUrlProvider))。
    返すwelcomePageHandlerMapping; 
}

ポイントに探し続けて

プライベート省略ザ<リソース> getWelcomePage(){ 
    String []型の位置 = getResourceLocations(この.resourceProperties.getStaticLocations());
     // :: java8が新たにオペレータに導入される
     // 関数がクラスに属している場合、クラス::関数をそれは、静的メソッドでなければなりません。
    // 目的球のこの::関数は、オブジェクトの一部です。
    // 要するに、それは、シンタックスシュガーである速記のある
    リターン Arrays.stream(場所).MAP( :: getIndexHtml).filter(:: isReadable).findFirst(); 
} 
// ようこそページは、index.htmlを場所のみ
専用リソースgetIndexHtml(文字列の位置){
     戻り 、これを.resourceLoader.getResource(位置+ "のindex.html" )。
}

ようこそページ、すべてのページのindex.htmlの静的リソースフォルダは、/ **マッピングされています。

例えば、私が訪問   // localhostを:8080 / HTTP 、わかりますindex.htmlを静的リソースフォルダ

私達の上のいずれかのディレクトリにある3で、新しいのindex.htmlを作成し、その後、テストにアクセスし   ます。http:// localhostを:8080 /  結果を見て!

説明アイコンウェブサイトについて

その他の静的リソースと同様、春ブーツは、静的なコンテンツの場所の設定をfavicon.icoを見つけます。そのようなファイルが存在する場合は、自動的にファビコンアプリケーションとして使用されます。

1、閉じSpringBootデフォルトのアイコン

#デフォルトのアイコンをオフに
spring.mvc.favicon.enabled = 偽を

2、静的アイコンリソースディレクトリに自分を入れて、私は公共のディレクトリの下に置きます

3、お使いのブラウザのキャッシュをクリア!アイコンを見つけ、ページを更新することは、それ自身となっています!

 

 

おすすめ

転載: www.cnblogs.com/hellokuangshen/p/12509918.html