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博客。
Powered By python教程网 鲁ICP备18013710号
python博客 - 小白学python最友好的网站!