启动Spring <tasks:scheduled-tasks>

Kev*_*vin 6 spring

我试图将Spring Scheduling与'scheduled-tasks'一起使用.我可以使用XmlBeanFactory加载spring上下文,并获取调度程序bean.但我不确定下一步.文档暗示任务应该自动启动 - 也许只有当我在像Tomcat这样的容器中加载上下文时?在使用XmlBeanFactory加载时是否可以启动任务?

下面是简化的java&spring配置.

public class SchedulingTest {
  public static void main(String[] args) throws Exception {

  Resource resource = new FileSystemResource("\\my_spring_file.xml");
  BeanFactory factory = new XmlBeanFactory(resource);

  ThreadPoolTaskScheduler scheduler = (ThreadPoolTaskScheduler) factory.getBean("myScheduler");  

  // -=-=-=-=-=      
  // NOW WHAT ?
  // -=-=-=-=-=

  }
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<task:scheduler id="myScheduler" pool-size="10" />
<task:scheduled-tasks scheduler="myScheduler">
    <task:scheduled ref="EmailPollingTask" method="readAndProcessEmails"
        fixed-delay="30000" />
</task:scheduled-tasks>
Run Code Online (Sandbox Code Playgroud)

mre*_*isz 6

Bean工厂仅提供ApplicationContext功能的子集.处理bean生命周期是我认为缺少的功能之一.尝试创建ApplicationContext:

ApplicationContext ctx = new FileSystemXmlApplicationContext("\\my_spring_file.xml");
Run Code Online (Sandbox Code Playgroud)

我希望自动启动计划任务.