springboot quartzjob传递传输_Quartz Job类使用有参数构造方法
时间: 2024-02-06 16:09:28 浏览: 120
在Spring Boot中使用Quartz Job类时,可以通过在Job类中定义有参构造方法来传递参数。这里有一个简单的例子:
1. 首先定义一个有参构造方法的Job类,例如:
```
public class MyJob implements Job {
private String name;
public MyJob(String name) {
this.name = name;
}
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Hello, " + name + "!");
}
}
```
2. 然后在Quartz配置类中创建JobDetail时,通过JobDataMap来传递参数。例如:
```
@Bean
public JobDetail myJobDetail() {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("name", "World");
return JobBuilder.newJob(MyJob.class)
.withIdentity("myJob")
.usingJobData(jobDataMap)
.storeDurably()
.build();
}
```
3. 最后在触发器中引用该JobDetail即可。例如:
```
@Bean
public Trigger myTrigger(JobDetail myJobDetail) {
return TriggerBuilder.newTrigger()
.forJob(myJobDetail)
.withIdentity("myTrigger")
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
}
```
这样,当触发器触发任务时,Job类中的有参构造方法会被调用,并且参数会从JobDataMap中获取。在本例中,控制台将输出“Hello, World!”。
阅读全文