SpringBoot MVC配置

SpringMVC自動配置

Spring Boot為Spring MVC提供自動配置,適用于大多數(shù)應用程序。

自動配置在Spring的默認值之上添加了以下功能:

  • 包含ContentNegotiatingViewResolverBeanNameViewResolver組件。
  • 支持提供靜態(tài)資源,包括對WebJars的支持。
  • 自動注冊ConverterGenericConverterFormatter組件。
  • 支持HttpMessageConverters
  • 自動注冊MessageCodesResolver。
  • 靜態(tài)index.html支持。
  • 自定義Favicon支持。
  • 自動使用ConfigurableWebBindingInitializerbean。

SpringMVC擴展配置

如果您想保留Spring Boot MVC功能并且想要添加其他額外的MVC配置(攔截器,格式化程序,視圖控制器和其他功能),您可以添加自己的@Configuration類型的WebMvcConfigurer配置類,但不要使用 @EnableWebMvc,會讓SpringBoot對Springmvc的所有自動配置都失效。

如果你希望提供

  • RequestMappingHandlerMapping

  • RequestMappingHandlerAdapter

  • ExceptionHandlerExceptionResolver

自定義實例可以聲明WebMvcRegistrationsAdapter實例來提供這些組件。

/**
    有一些教程是用的“WebMvcConfigurerAdapter”接口,不過在spring5.0版本后這個類被丟棄
    WebMvcConfigurerAdapter  ,雖然還可以用,但是看起來不好。
*/
@Configuration
public WebMvcConfg  implements  WebMvcConfigurer { 
    
   /* 攔截器 */
    @Override
    public void addInterceptors(
        InterceptorRegistry registry) {
        
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
    
    }
    
       
    /**
        視圖控制
        以前寫SpringMVC的時候,如果需要訪問一個頁面,必須要寫Controller類,
        然后再寫一個方法跳轉(zhuǎn)到頁面,感覺好麻煩,
        其實重寫WebMvcConfigurer中的addViewControllers方法即可達到效果了
    */
    @Override
    public void addViewControllers(
        ViewControllerRegistry registry) {
            //aaa請求會映射到aaa界面
            registry.addViewController("/aaa").setViewName("aaa");
    }

    /**
        比如,我們想自定義靜態(tài)資源映射目錄的話,只需重寫addResourceHandlers方法即可。
        注:如果繼承WebMvcConfigurationSupport類實現(xiàn)配置時必須要重寫該方法
    */
    @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) {

    }

    //還有很多方法..
    
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容