Spring @Enable模塊驅動原理及使用實例
Spring @Enable 模塊概覽
框架實現 @Enable注解模塊 激活模塊 Spring Framework @EnableWebMvc Web MVC 模塊 @EnableTransactionManagement 事務管理模塊 @EnableCaching Caching 模塊 @EnableMBeanExport JMX 模塊 @EnableAsync 異步處理模塊 @EnableWebFlux Web Flux 模塊 @EnableAspectJAutoProxy AspectJ 代理模塊 Spring Boot @EnableAutoConfiguration 自動裝配 @EnableManagementContext Actuator 管理模塊 @EnableConfigurationProperties 配置屬性綁定模塊 @EnableOAuth2Sso OAuth2 單點登錄模塊 Spring Cloud @EnableEurekaServer Eureka 服務器模塊 @EnableConfigServer 配置服務器模塊 @EnableFeignClients Feign 客戶端模塊 @EnableZuulProxy 服務網關Zuul 模塊 @EnableCircuitBreaker 服務熔斷模塊
理解 @Enable 以 @EnableWebMVC 為例進行理解
定義如下:
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(DelegatingWebMvcConfiguration.class)public @interface EnableWebMvc {}
發現該注解中引入的 DelegatingWebMvcConfiguration.class
@Configuration(proxyBeanMethods = false)public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {...}
public class WebMvcConfigurationSupport implements ApplicationContextAware, ServletContextAware {@Bean@SuppressWarnings('deprecation')public RequestMappingHandlerMapping requestMappingHandlerMapping( @Qualifier('mvcContentNegotiationManager') ContentNegotiationManager contentNegotiationManager, @Qualifier('mvcConversionService') FormattingConversionService conversionService, @Qualifier('mvcResourceUrlProvider') ResourceUrlProvider resourceUrlProvider) { ...}...}
其中 實現類 WebMvcConfigurationSupport.java 中 預定義了 多個 Spring Bean 對象,
隨著 @EnableWebMVC 驅動注解的加載而被加載到 Spring 上下文中從而實現 Spring Web MVC的功能。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
