Spring Boot 開発用の静的リソース

1つのシンプルな機能

1 静的リソースアクセス

1 静的リソースディレクトリ

静的リソースがクラスパスに配置されている限り: /static (または /public または /resources または /META - INF/resource)

アクセス: 現在のプロジェクトのルート パス / + 静的リソース名

原則: 静的マッピングは広範囲に適用されます。リクエストが到着すると、まずコントローラーにアクセスして、それが処理できるかどうかを確認します。処理できないリクエストはすべて静的リソース プロセッサに渡されます。静的リソースが見つからない場合は、404 ページで応答します。

デフォルトの静的リソース パスを変更します。

spring:
    mvc:
        static-path-pattern: /res/**
    resources:
        static-locations: [classpath:/haha/]

2 静的リソースアクセスプレフィックス

デフォルトではプレフィックスなし

spring:
  mvc:
	static-path-pattern: /res/**

現在のプロジェクト + 静的パスパターン + 静的リソース名 = 静的リソース フォルダーの下で検索

3 ホームサポート

静的リソースパスの下のindex.html

  • 静的リソースパスを設定可能
  • ただし、静的リソースのアクセスプレフィックスは設定できません。それ以外の場合、デフォルトでは、index.html にアクセスできません。
spring:
 # 这个会导致welcome page功能失效
 # mvc:
	 # static- path- pattern: /res/** 
  resources:
    static-locations: [classpath:/haha/]

4 カスタムファビコン

favicon.ico は静的リソース ディレクトリに配置できます。

spring:
 # 这个会导致 Favicon 功能失效
 # mvc:
 # static-path-pattern: /res/* 

静的リソース構成の 5 つの原則

SpringBoot は、デフォルトで xxxAutoConfiguration クラス (自動構成クラス) のロードを開始します。

SpringMVC関数の自動設定クラスWebMvcAutoConfigurationが有効になります

@Configuration(proxyBeanMethods = false)
(aJConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({
    
     Servletclass, DispatcherServlet.class^ WebMvcConfigurer
@ConditionalOnlvlissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ondened.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({
    
     DispatchenServletAutoConfigunation.class, TaskExecutionA
ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {
    
    }

コンテナ内の構成:

@Configuration(proxyBeanMethods = false)
@Impont(EnableWeblvlvcConfiguration.class)
@EnableConfigurationProperties({
    
     WebMvcProperties .class, ResounceProperties.class})
@Order(0)
public static class WebMvcAutoConfigurationAdapter implements WebMvcConfig

構成ファイルの関連する属性は xxx にバインドされます。WebMvcプロパティspring.mvcN リソースプロパティ春のリソース

1 構成クラスにはパラメータを持つコンストラクタが 1 つだけあります

// 有参构造器所有参数的值都会从容器中确定
// ResourceProperties resourceProperties;获耳又和spring.resources绑定的所1有的值的〉
// WebMvcProperties mvcProperties 获取和spring.mvc绑定的所有的值的对象
// ListableBeanFactory beanFactory Spring的beanFactory
// HttpMessageConverters 找到所1有的HttpMessageConverters
// ResourceHandlerRegistrationCustomizer 找到资源处理器的自定义器。=========
// DispatcherServletPath
// ServletRegistrationBean 给应用注册Servlet、Filter
public WebMvcAutoConfigurationAdapter(ResourceProperties resourcePropertie
    ListableBeanFactory beanFactory, ObjectProviden<HttpMessageCon
    ObjectProvider< ResourceHandlenRegistrationCustomizer>
    ObjectProvider<DispatchenServletPath> dispatcherServletPath^
    ObjectProvider<ServletRegistrationBean<?>> servletRegistration
    this.resourceProperties = resourceProperties;
    this.mvcProperties = mvcProperties;
    this.beanFactory = beanFactory;
    this.messageConvertersProvider = messageConvertersProvider;
    this.resourceHandlerRegistrationCustomizer = resourceHandlerRegist
    this.dispatcherServletPath = dispatcherServletPath;
    this.servletRegistrations = servletRegistrations;
}

2 リソース処理のデフォルトのルール

public void addResourceHandlers(ResourceHandlerRegistry registry){
    
    
    if (!this.resourceProperties.isAddMappings()){
    
    
    logger.debug("Default resource handling disabled");
    return;
    }
    // ...
}

構成

spring:
  # mvc:
  # static-path-pattern: /res/**
	resources:
      add-mappings: false # 禁用所有静态资源规则

おすすめ

転載: blog.csdn.net/ABestRookie/article/details/127376678