以下是Spring Boot中Spring MVC相關配置的詳細描述及表格總結:
Spring MVC 配置項詳解
1. 異步請求配置
spring.mvc.async.request-timeout
描述 :設置異步請求的超時時間(單位:毫秒)。默認值 :未設置(無限等待)。示例 :spring.mvc.async.request-timeout=30000
(30秒超時)。
2. 內容協商配置
spring.mvc.contentnegotiation.favor-parameter
描述 :是否通過請求參數(默認參數名format
)確定媒體類型。默認值 :false
(不啟用參數協商)。 spring.mvc.contentnegotiation.favor-path-extension
描述 :是否通過路徑擴展(如.json
)確定媒體類型。默認值 :false
(不啟用路徑擴展協商)。 spring.mvc.contentnegotiation.media-types.*
描述 :定義媒體類型與文件擴展名的映射(如application/json
對應.json
)。示例 :spring.mvc.contentnegotiation.media-types.yml=application/yaml
。 spring.mvc.contentnegotiation.parameter-name
描述 :自定義參數名(替代默認的format
)。示例 :spring.mvc.contentnegotiation.parameter-name=media
。
3. 日期格式配置
spring.mvc.format.date
描述 :全局日期格式(需與DateTimeFormatter
兼容)。默認值 :無(使用Java默認格式)。示例 :spring.mvc.format.date=yyyy-MM-dd
。
4. 請求處理配置
spring.mvc.dispatch-trace-request
描述 :是否啟用對TRACE
請求的處理。默認值 :false
。 spring.mvc.dispatch-options-request
描述 :是否啟用對OPTIONS
請求的處理。默認值 :true
。
5. 表單數據處理
spring.mvc.formcontent.filter.enabled
描述 :是否將PUT
/PATCH
的表單數據請求轉換為POST
。默認值 :true
(啟用轉換)。
6. 模型與國際化
spring.mvc.ignore-default-model-on-redirect
描述 :重定向時是否忽略默認模型數據。默認值 :true
(忽略默認模型)。 spring.web.locale
描述 :默認國際化語言(如zh_CN
)。默認值 :由Accept-Language
決定。 spring.web.locale-resolver
描述 :國際化解析策略(accept-header
/fixed
/header
)。默認值 :accept-header
(根據瀏覽器語言)。
7. 日志與異常
spring.mvc.log-resolved-exception
描述 :是否記錄已處理異常的詳細日志。默認值 :false
(不記錄)。
8. 路徑匹配
spring.mvc.pathmatch.use-suffix-pattern
描述 :是否使用后綴模式匹配(如/api/*.*
)。默認值 :false
。
9. 視圖與靜態資源
spring.mvc.view.prefix
/suffix
描述 :視圖模板的前綴和后綴(如classpath:/templates/
和.html
)。默認值 :空字符串(需根據模板引擎配置)。 spring.mvc.static-path-pattern
描述 :靜態資源路徑匹配規則。默認值 :/**
(匹配所有路徑)。
10. 其他配置
spring.mvc.servlet.load-on-startup
描述 :Servlet啟動時的加載優先級(-1表示延遲加載)。默認值 :-1
。 spring.mvc.throw-exception-if-no-handler-found
描述 :無處理器時是否拋出NoHandlerFoundException
。默認值 :false
(返回404)。
Thymeleaf 配置項
配置項 描述 默認值 spring.thymeleaf.enabled
是否啟用Thymeleaf模板引擎 true
spring.thymeleaf.prefix
模板文件路徑前綴(如classpath:/templates/
) classpath:/templates/
spring.thymeleaf.suffix
模板文件后綴(如.html
) .html
JSON配置(Jackson)
配置項 描述 默認值 spring.jackson.time-zone
JSON時間序列化的時區(如GMT+8
) JVM默認時區 spring.jackson.date-format
日期格式(如yyyy-MM-dd HH:mm:ss
) yyyy-MM-dd HH:mm:ss Z
配置項總結表
配置項 描述 默認值 示例值 spring.mvc.async.request-timeout
異步請求超時時間(毫秒) 無(無限) 30000
spring.mvc.contentnegotiation.favor-parameter
是否啟用參數協商(如?format=json
) false
true
spring.mvc.contentnegotiation.favor-path-extension
是否啟用路徑擴展協商(如/api/data.json
) false
true
spring.mvc.contentnegotiation.media-types.*
媒體類型與擴展名映射(如yml=application/yaml
) 無 spring.mvc.contentnegotiation.media-types.xml=application/xml
spring.mvc.contentnegotiation.parameter-name
自定義參數名(替代format
) format
media
spring.mvc.format.date
全局日期格式(如yyyy-MM-dd
) 無 yyyy-MM-dd HH:mm:ss
spring.mvc.dispatch-trace-request
是否啟用TRACE
請求處理 false
true
spring.mvc.dispatch-options-request
是否啟用OPTIONS
請求處理 true
false
spring.mvc.formcontent.filter.enabled
是否將PUT/PATCH
表單數據轉換為POST
true
false
spring.mvc.ignore-default-model-on-redirect
重定向時是否忽略默認模型數據 true
false
spring.web.locale
默認國際化語言(如zh_CN
) 由Accept-Language
決定 en_US
spring.web.locale-resolver
國際化解析策略(accept-header
/fixed
/header
) accept-header
fixed
spring.mvc.log-resolved-exception
是否記錄已處理異常日志 false
true
spring.mvc.pathmatch.use-suffix-pattern
是否使用后綴模式匹配路徑(如/api/*.*
) false
true
spring.mvc.servlet.load-on-startup
Servlet加載優先級(-1為延遲加載) -1
1
spring.mvc.static-path-pattern
靜態資源路徑匹配規則(如/**
) /**
/static/**
spring.mvc.throw-exception-if-no-handler-found
無處理器時是否拋出異常 false
true
spring.mvc.view.prefix
視圖模板路徑前綴(如classpath:/templates/
) 空字符串 classpath:/views/
spring.mvc.view.suffix
視圖模板后綴(如.html
) 空字符串 .jsp
注意事項
Jackson配置 :spring.jackson.date-format
需與Java的DateTimeFormatter
兼容。Thymeleaf路徑 :確保模板文件路徑與prefix
和suffix
配置一致。國際化 :若需固定語言,設置spring.web.locale-resolver=fixed
并指定spring.web.locale
。