Spring的@Enable*注解的工作原理

一 列举几个@Enable*注解的功能

  • @EnableAspectJAutoProxy:开启对AspectJ自动代理的支持。
  • @EnableAsync:开启异步方法支持。
  • @EnableScheduling:开启计划任务
  • @EnableWebMvc:开启Web Mvc配置功能

二 点睛

通过简单的@Enable*来开启一项功能的支持,从而避免自己配置大量的代码,大大降低了使用难度。

通过观察这些@Enable*注解的源码,会发现所有的注解都有一个@Import注解,该注解是用来导入配置类的,这也意味着这些开启的实现是导入了一些自动配置的Bean。

这些导入方式分三类,我们一探究竟。

三 导入配置类方式

1 直接导入配置类

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(SchedulingConfiguration.class)
@Documented
public @interface EnableScheduling {

}

直接导入配置类SchedulingConfiguration,SchedulingConfiguration注解了@Configuration,且注册了ScheduledAnnotationBeanPostProcessor的Bean,源码如下:


                
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值