W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
從上面許多例子你可以看到,MVC Java編程配置和MVC命名空間的方式都提供了更高抽象層級的應用配置,它不需要你對底下創(chuàng)建的bean有非常深入的了解,相反,這使得你能僅專注于應用需要的配置。不過,有時你可能希望對應用的更精細控制,或你就是單純希望理解底下的配置和機制。
要做到更精細的控制,你要做的第一步就是看看底層都為你創(chuàng)建了哪些bean。若你使用MVC Java編程的方式進行配置,你可以看看java文檔,以及WebMvcConfigurationSupport
類的@Bean
方法。這個類有的配置都會自動被@EnableWebMvc
注解導入。事實上,如果你打開@EnableWebMvc
的聲明,你就會看到應用于其上的@Import
注解。
精細控制的下一步是選擇一個WebMvcConfigurationSupport
創(chuàng)建的bean,定制它的屬性,或你可以提供自己的一個實例。這確保做到以下兩步:移除@EnableWebMvc
注解以避免默認配置被自動導入,然后繼承DelegatingWebMvcConfiguration
類,它是WebMvcConfigurationSupport
的一個子類。以下是一個例子:
@Configuration
public class WebConfig extends DelegatingWebMvcConfiguration {
@Override
public void addInterceptors(InterceptorRegistry registry){
// ...
}
@Override
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter() {
// 自己創(chuàng)建適配器,或者調用super讓基類處理
// 然后在這里定制bean的一些屬性
}
}
應用應該只有一個繼承
DelegatingWebMvcConfiguration
的配置類,或只有一個@EnableWebMvc
注解的類,因為它們背后注冊的bean都是相同的。使用這個方式修改bean的屬性,與這節(jié)前面展示的任何高抽象層級的配置方式并不沖突。
WebMvcConfigurerAdapter
的子類和WebMvcConfigurer
的實現(xiàn)都還是會被使用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: