2010-12-07 103 views
7

我有春@Scheduled注入延遲時間

@Scheduled(fixedDelay = 6000) 
private void myScheduledMethod(){ 
//do something 
} 

註釋的一些方法我也有一組的,我配置環境中的特定值的屬性文件。出於測試目的,我希望延遲的值可以配置,理想情況下通過屬性文件中的屬性。

由於fixedDelay的值必須是一個常量,我正在尋找一種方法來從屬性文件中獲取此集合,但尚未找到一種方法來完成此操作。

回答

6

我就死在了同樣的問題,但解決它的最好方法現在是:

@Scheduled(fixedDelayString = "${my.delay.property}") 
public void myScheduledMethod(){ 
    // do something 
} 
5

這將是很好的選擇,但我認爲它不存在(註釋是類級別的,而值會在創建實例時注入)。

爲了使這個可配置使用xml命名空間<task:。就像從spring docs的例子:

<task:scheduled-tasks scheduler="myScheduler"> 
    <task:scheduled ref="someObject" method="someMethod" 
     fixed-delay="${configuredDelay}"/> 
</task:scheduled-tasks>