网络编程
位置:首页>> 网络编程>> 网络编程>> Spring @Enable模块驱动原理及使用实例

Spring @Enable模块驱动原理及使用实例

作者:因分享而收获  发布时间:2023-11-07 10:11:51 

标签:Spring,enable,模块,驱动

Spring @Enable 模块概览

框架实现@Enable注解模块激活模块
Spring Framework@EnableWebMvcWeb MVC 模块
@EnableTransactionManagement事务管理模块
@EnableCachingCaching 模块
@EnableMBeanExportJMX 模块
@EnableAsync异步处理模块
@EnableWebFluxWeb Flux 模块
@EnableAspectJAutoProxyAspectJ 代理模块
Spring Boot@EnableAutoConfiguration自动装配
@EnableManagementContextActuator 管理模块
@EnableConfigurationProperties配置属性绑定模块
@EnableOAuth2SsoOAuth2 单点登录模块
Spring Cloud@EnableEurekaServerEureka 服务器模块
@EnableConfigServer配置服务器模块
@EnableFeignClientsFeign 客户端模块
@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的功能。

来源:https://www.cnblogs.com/30rl/p/13171676.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com