springboot学习5

Spring手动装配之Spring @Enable 模块装配
1、@Enable注解模块

框架实现 @Enable注解 激活模块
Spring Framework @EnableWebMvc Web MVC 模块
Spring Framework @EnableTransactionManagement 事务管理模块
Spring Framework @EnableCaching Caching 模块
Spring Framework @EnableMBeanExport JMX 模块
Spring Framework @EnableAsync 异步处理模块
Spring Framework @EnableWebFlux Web Flux 模块
Spring Framework @EnableAspectJAutoProxy AspectJ 代理模块
Spring Boot @EnableAutoConfiguration 自动装配模块
Spring Boot @EnableManagementContext Actuator 管理模块
Spring Boot @EnableConfigurationProperties 配置属性绑定模块
Spring Boot @EnableOAuth2Sso OAuth2 单点登录模块
Spring Cloud @EnableEurekaServer Eureka服务器模块
Spring Cloud @EnableConfigServer 配置服务器模块
Spring Cloud @EnableFeignClients Feign客户端模块
Spring Cloud @EnableZuulProxy 服务网关 Zuul 模块
Spring Cloud @EnableCircuitBreaker 服务熔断模块

2、实现方式
1)注解驱动

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented@Import(CachingConfigurationSelector.class)
public @interface EnableCaching {
    
    
	// ...
}

2)接口编程

public class CachingConfigurationSelector extends AdviceModeImportSelector<EnableCaching> {
    
    

public String[] selectImports(AdviceModeadviceMode) {
    
    
	switch (adviceMode) {
    
    
		case PROXY:
		return new String[] {
    
     
			AutoProxyRegistrar.class.getName(),ProxyCachingConfiguration.class.getName()
		};
		case ASPECTJ:
		return new String[] {
    
     
			AnnotationConfigUtils.CACHE_ASPECT_CONFIGURATION_CLASS_NAME 
		};
		default:
		return null;    
	}
}

猜你喜欢

转载自blog.csdn.net/tongwudi5093/article/details/113695407