Spring中@Enable模块如何实现驱动原理及具体应用案例?

2026-05-22 00:451阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计558个文字,预计阅读时间需要3分钟。

Spring中@Enable模块如何实现驱动原理及具体应用案例?

Spring框架中,通过使用`@Enable`注解可以启用特定的模块功能。以下是一些常用的`@Enable`模块及其简要说明:

- `@EnableModule`:启用模块视图,提供模块级别的配置。- `@EnableWebMvc`:启用Web MVC模块,支持创建Web应用程序。- `@EnableTransactionManagement`:启用事务管理模块,支持声明式事务。- `@EnableCaching`:启用缓存模块,支持缓存管理。- `@EnableMBeanExport`:启用JMX模块,支持JMX管理。- `@EnableAsync`:启用异步处理模块,支持异步执行任务。

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 服务熔断模块

Spring中@Enable模块如何实现驱动原理及具体应用案例?

理解 @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的功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计558个文字,预计阅读时间需要3分钟。

Spring中@Enable模块如何实现驱动原理及具体应用案例?

Spring框架中,通过使用`@Enable`注解可以启用特定的模块功能。以下是一些常用的`@Enable`模块及其简要说明:

- `@EnableModule`:启用模块视图,提供模块级别的配置。- `@EnableWebMvc`:启用Web MVC模块,支持创建Web应用程序。- `@EnableTransactionManagement`:启用事务管理模块,支持声明式事务。- `@EnableCaching`:启用缓存模块,支持缓存管理。- `@EnableMBeanExport`:启用JMX模块,支持JMX管理。- `@EnableAsync`:启用异步处理模块,支持异步执行任务。

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 服务熔断模块

Spring中@Enable模块如何实现驱动原理及具体应用案例?

理解 @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的功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。