Spring不会使用@Scheduled方法

时间:2016-09-30 15:15:20

标签: java spring spring-mvc dependency-injection quartz-scheduler

我第一次使用Spring @Scheduled注释。我已经在配置中启用了调度,并且调度方法非常有效。

我的问题是,Spring没有使用@Scheduled带注释的方法将所需的bean注入我的bean。我实际得到的是一个LockService代理对象,在这种情况下没用。

有没有办法将Spring bean注入带有计划任务的bean?

我在@Autowired注释下尝试使用@Lazy注释,但结果是一样的。从注入的ApplicationContext获取bean也没有结果。

这是我的bean没有注入依赖项:

@Component
    public class LockScheduler extends AbstractScheduler {

        private final LockService lockService; 

        @Autowired
        public LockScheduler(LockService lockService) {
            this.lockService = lockService;
        }

        @Scheduled(fixedDelay = 15000)
        public void removeAbandonedLocks() {
            if (!isSchedulingEnabled()) {
                return;
            }

            LOG.info("Execute abandoned lock remove");
            lockService.removeAbandonedLocks();
        }

    }

我想这与Aspects有关,我无法通过计划任务从bean到达ApplicationContext。

更新:

我从调试模式发布了屏幕。而不是LockService对象我获得了对LockRepository的null引用的代理,因此breakpointed方法execute无效。 enter image description here

0 个答案:

没有答案