今天在做一个项目的时候,要给一个定时器任务的执行方法传递参数,在网上找了一下资料,可以使用arguments参数:
<bean id="subsidyJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="subsidyJob" /> <property name="targetMethod" value="execute" /> <property name="concurrent" value="false" /> <property name="arguments" value="argsValue"/> </bean>
可以通过arguments 参数给targetMethod方法传递参数,
public class SubsidySchemeJob { public void execute(String args) { System.out.println("方案开始执行"+args); } }
在execute方法中就可以获得参数;
如果需要传递多个多个参数,在xml中用list配置:
<property name="arguments"> <list> <value>arg1</value> <value>arg2</value> </list> </property>
在方法中用数组获取:
public class SubsidySchemeJob { public void execute(String args[]) { System.out.println("方案开始执行,参数1:"+args[0] +"参数2:" + args[1]); } }