用的spring,需要在XML里面往JobDetailBean注入一个org.quartz.JobDataMap作为参数.在类里面可以直接取出来.(如果不用spring,可以直接配置job-data-map)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<
bean
name
=
"testDataMap"
class
=
"org.quartz.JobDataMap"
>
<
constructor-arg
>
<
map
>
<
entry
key
=
"PARAM1"
value
=
"参数1"
></
entry
>
<
entry
key
=
"PARAM2"
value
=
"参数2"
></
entry
>
<
entry
key
=
"PARAM3"
value
=
"参数3"
></
entry
>
</
map
>
</
constructor-arg
>
</
bean
>
<
bean
name
=
"jobDetail1"
class
=
"org.springframework.scheduling.quartz.JobDetailBean"
>
<
property
name
=
"jobClass"
>
<
value
>
com.test.quartzforcz.sendTask
</
value
>
</
property
>
<
property
name
=
"jobDataMap"
>
<
ref
bean
=
"testDataMap"
/>
</
property
>
</
bean
>
|
在Job类中的 executeInternal(JobExecutionContext context) 中这样取出:
1
2
|
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
logger.info(
"PARAM1:"
+ dataMap.getString(
"PARAM1"
));
|