在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 關(guān)于Quartz的一些疑問

關(guān)于Quartz的一些疑問

<bean id="xxx.scheduler"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
</bean>
@Component
public class QuartzScheduler {
  @Qualifier("xxx.scheduler")
  @Autowired
  Scheduler scheduler;

  @PostConstruct
  public void start() {
    try {
      scheduler.start();
    } catch (SchedulerException e) {
      log.error("", e);
    }
  }

}

定義的時候定義了SchedulerFactoryBean的id為"xxx.scheduler",為什么注入Scheduler的時候也可以用這個ID注入???

回答
編輯回答
哎呦喂

以下僅為個人猜想:
發(fā)現(xiàn)你 id 類型和被注解屬性類型不一致時,可能會做一些嘗試:

Spring 發(fā)現(xiàn)你 id 綁定的是個 FactoryBean<T> 的實(shí)現(xiàn),它會調(diào)用其 getObjectType 來檢查這個工廠類返回的實(shí)例類型能否與被注解屬性相匹配。

SchedulerFactoryBeanFactoryBean<T> 的實(shí)現(xiàn)類,它的 getObjectType 返回的就是 java.lang.Class<? extends Scheduler>

2017年12月25日 13:56