2012-02-22 7 views
6

'scheduled-tasks'でSpring Schedulingを使用しようとしています。 XmlBeanFactoryを使用してSpringコンテキストをロードし、スケジューラーBeanを取得できます。しかし、次のステップについてはわかりません。ドキュメントは、タスクが自動的に開始されるべきであることを暗示しています。おそらく、Tomcatのようなコンテナにコンテキストをロードするときだけです。 XmlBeanFactoryをロードするときにタスクを開始することは可能ですか?Springの開始<tasks:scheduled-tasks>

以下は簡略化されたJava &スプリング設定です。

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> 

答えて

6

豆の工場は、ApplicationContextの機能のサブセットのみを提供しています。私が考える欠けている機能の1つは、Beanのライフサイクルを処理することです。 ApplicationContextを作成してみてください:

ApplicationContext ctx = new FileSystemXmlApplicationContext("\\my_spring_file.xml"); 

スケジュールされたタスクが自動的に開始されることが期待されます。

関連する問題