2016-08-18 49 views
-1

在下面給出的代碼中,我收到編譯錯誤Attribute value must be constant。如何處理它?從application.properties中讀取:屬性值必須爲常量

@Component 
public class ScheduledTasks { 

    @Value("${example}") 
    String message; 

    @Value("${update.rate}") 
    final static long rate; 

    @Scheduled(fixedRate = this.rate) 
    public void update() 
    { 
     System.out.println(this.message); 
    } 
} 
+0

在這行你得到的編譯錯誤? – Jens

+0

爲什麼你有*最終靜態*率。嘗試刪除這些修飾符。 –

+0

@Jens:在線'@Scheduled(fixedRate = this.rate)' – HackerDuck

回答

3

更改爲:

@Scheduled(fixedRateString = "${update.rate}") 
public void update() 
{ 
    System.out.println(this.message); 
} 
+0

在application.properties我有這個:'update.rate = 5000' – HackerDuck

+0

@Downvoter請解釋爲什麼? – Jens

+0

它工作正常。不知道爲什麼這個答案是downvoted。 – HackerDuck

相關問題