前言:
在前一篇文章简单了使用了下,但是在实际当中,我们会在Job类中使用Job Data Property和注入Spring的bean等等情况,要如何解呢
说明:
(1)Spring Boot 版本:2.0.0.RELEASE;
(2)Quartz版本:2.3.0
一、使用Job Data Property
1.1 在JobDetail中设置Job Data
JobDetail构建的时候,是可以设置jobData的,使用的方法是usingJobData(key,value),所以在构建Job的时候,我们可以给Job传递一些data,如下实例(以下代码显示不全,可以左右滑动):
@Bean
public JobDetail myJobDetail() {
return JobBuilder.newJob(MyJob.class).withIdentity("MyJob")
.usingJobData("name","悟纤")
.storeDurably().build();
}
1.2 在Job中接收Job Data
接收是很简单的,主要定义一个属性,然后设置对应的setter方法即可,如下:
public class MyJob extends QuartzJobBean{
private String name;
//Inject the "name" job data property
public void setName(String name) {
= name;
}
@Override
protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
System.out.println("hello,"++");
}
}
二、在Job中注入Service
在Job类中注入service的话,也是很简单的,直接使用@Autowired即可完成注入,然后进行使用了,如下代码:
@Autowired
public HelloService helloService;
还记得在spring boot 1.0的时候,怎么一个费劲嘛?在2.0的话,就可以直接注入使用了,就是这么简单!