Spring MVC Declaring bean to use @Scheduled
本问题已经有最佳答案,请猛点这里访问。
我正在尝试让一个类定期从RESTAPI请求数据,以检查我数据库中的数据是否仍然是最新的。
文档指出,为了启用调度,我应该将
这一切都有效,但我不完全理解容器中任何Spring管理的bean的含义。现在我在配置类中这样声明bean(类
1 2 3 4 | @Bean public CapsuleRestApi capsuleDatabaseJpa() { return new CapsuleRestApi(); } |
然后我在capsulerestapi类中使用了这个方法
1 2 3 4 | @Scheduled(fixedDelay = 2000) public void refresh() { // refresh and check changes } |
有没有另一种方法可以使它在不将方法作为bean添加的情况下工作?我不完全理解为什么它与bean方法一起工作。
what any spring managed bean in the container means.
这意味着,Spring应该在课程开始时就知道这门课。如果您将
例如。你有这样的课吗?
1 2 3 4 5 6 7 | class NotManagedBean { @Scheduled public void scheduler() { ..... } } |
您将看到此计划方法从未执行。因为,Spring容器不知道这个类。那是因为它没有被扫描。这是应该做的事实,它不是一个春豆。
现在在类上加上
当你这么做的时候,意味着你要申报一个豆子。因此它起作用了。
希望这是清楚的