2014-12-01 78 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