2014-12-01 96 views
0

newJob的用法是這樣的:我是否可以在班級上班並設置一些值?

newJob(ConnectorScheduler.class) 

但我也想設置一些春天的JdbcTemplate上ConnectorScheduler的情況下,是可行的?

基本上我想要做

job=new ConnectorScheduler(); 
job.setJdbcTemplate(jdbcTemplate); 
newJob(job); 
+0

我看到您是試用版ng與Spring一起使用Quartz,爲什麼不花一些時間閱讀關於這個主題的Spring文檔? :) http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html – 2014-12-02 13:06:09

回答

0

是的,但你可以傳遞參數給作業(和觸發器),但在石英必須使用JobDataMap結構的工作原理是這樣:

job=new ConnectorScheduler(); 
job.getJobDataMap().put("param1", "123"); 
newJob(job); 

對於數字(以及其他非字符串值),您可以使用:

job.getJobDataMap().putAsString("param1", 123); 
+0

對不起,如果我想使用一些對象,而不是int或字符串等。看起來像getJobDataMap只能使用string/int。 – 2014-12-02 12:37:35

+0

您不想在JobDataMap中存儲非原始對象以避免各種序列化問題。詳情請參閱http://quartz-scheduler.org/documentation/best-practices。如果你想存儲非原始數據類型,你通常可以將它們表示爲字符串(例如JSON,XML等)。然後,您可以輕鬆處理您的序列化器/解串器中的對象版本,例如通過在字符串中嵌入版本號。 – 2014-12-02 12:54:51

+0

問題出在我需要訪問jdbcTemplate的工作中,所以沒有簡單的方法來代替創建jdbcTemplate的許多代碼? – 2014-12-02 13:02:05