SpringMVC自動(dòng)配置
Spring Boot為Spring MVC提供自動(dòng)配置,適用于大多數(shù)應(yīng)用程序亚情。
自動(dòng)配置在Spring的默認(rèn)值之上添加了以下功能:
- 包含
ContentNegotiatingViewResolver
和BeanNameViewResolver
組件妄痪。 - 支持提供靜態(tài)資源,包括對(duì)WebJars的支持楞件。
- 自動(dòng)注冊
Converter
衫生,GenericConverter
和Formatter
組件。 - 支持
HttpMessageConverters
土浸。 - 自動(dòng)注冊
MessageCodesResolver
罪针。 - 靜態(tài)
index.html
支持。 - 自定義
Favicon
支持黄伊。 - 自動(dòng)使用
ConfigurableWebBindingInitializer
bean泪酱。
SpringMVC擴(kuò)展配置
如果您想保留Spring Boot MVC功能并且想要添加其他額外的MVC配置(攔截器,格式化程序还最,視圖控制器和其他功能)墓阀,您可以添加自己的@Configuration
類型的WebMvcConfigurer
配置類,但不要使用 @EnableWebMvc
憋活,會(huì)讓SpringBoot對(duì)Springmvc的所有自動(dòng)配置都失效岂津。
如果你希望提供
RequestMappingHandlerMapping
RequestMappingHandlerAdapter
ExceptionHandlerExceptionResolver
自定義實(shí)例可以聲明WebMvcRegistrationsAdapter實(shí)例來提供這些組件。
/**
有一些教程是用的“WebMvcConfigurerAdapter”接口悦即,不過在spring5.0版本后這個(gè)類被丟棄
WebMvcConfigurerAdapter 吮成,雖然還可以用,但是看起來不好辜梳。
*/
@Configuration
public WebMvcConfg implements WebMvcConfigurer {
/* 攔截器 */
@Override
public void addInterceptors(
InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
}
/**
視圖控制
以前寫SpringMVC的時(shí)候粱甫,如果需要訪問一個(gè)頁面,必須要寫Controller類作瞄,
然后再寫一個(gè)方法跳轉(zhuǎn)到頁面茶宵,感覺好麻煩,
其實(shí)重寫WebMvcConfigurer中的addViewControllers方法即可達(dá)到效果了
*/
@Override
public void addViewControllers(
ViewControllerRegistry registry) {
//aaa請求會(huì)映射到aaa界面
registry.addViewController("/aaa").setViewName("aaa");
}
/**
比如宗挥,我們想自定義靜態(tài)資源映射目錄的話乌庶,只需重寫addResourceHandlers方法即可。
注:如果繼承WebMvcConfigurationSupport類實(shí)現(xiàn)配置時(shí)必須要重寫該方法
*/
@Override
public void addResourceHandlers(
ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/");
}
@Override
public void addArgumentResolvers(
List<HandlerMethodArgumentResolver> resolvers) {
}
/* 添加跨域映射 */
@Override
public void addCorsMappings(
CorsRegistry registry) {
}
/* 配置視圖解析器 */
@Override
public void configureViewResolvers(
ViewResolverRegistry registry) {
}
//還有很多方法..
}