时间:2020-09-09 python教程 查看: 1040
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的功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。