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的功能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
python批量检查两个对应的txt文件的行数是否一致的实例代码
这篇文章主要介绍了python批量检查两个对应的txt文件的行数是否一致,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10Keras中Sequential模型和Functional模型的区别及说明
这篇文章主要介绍了Keras中Sequential模型和Functional模型的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12
最新评论