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({
Servlet •class, 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 # 禁用所有静态资源规则