quartzjob传递传输_Quartz Job类使用有参数构造方法
时间: 2023-08-06 16:04:57 浏览: 52
如果你想在Quartz Job中使用有参数的构造函数,可以采用以下两种方法:
1. 使用JobDataMap
在JobDetail中设置JobDataMap,然后在Job类的execute方法中获取参数。
例如:
```
JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
String param1 = jobDataMap.getString("param1");
int param2 = jobDataMap.getInt("param2");
MyJob myJob = new MyJob(param1, param2);
```
2. 使用Spring框架的依赖注入
如果你使用Spring框架,可以将参数注入到Job类中。
例如:
在Spring配置文件中定义Bean:
```
<bean id="myJob" class="com.example.MyJob">
<constructor-arg value="param1"/>
<constructor-arg value="param2"/>
</bean>
```
在JobDetailFactoryBean中设置JobDetail:
```
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.example.MyJob"/>
<property name="jobDataAsMap">
<map>
<entry key="spring.beanName" value="myJob"/>
</map>
</property>
</bean>
```
在Job类中获取参数:
```
public class MyJob implements Job {
private String param1;
private int param2;
public MyJob(String param1, int param2) {
this.param1 = param1;
this.param2 = param2;
}
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
// do something with param1 and param2
}
}
```