设置org.springframework.scheduling.quartz.JobDetailBean的bean属性\'jobClass\'

| 我的项目有一个Quartz Scheduler,我将JobDetailBean设置为
<bean id=\"deadlineFailureChecker\" class=\"info.release.scheduler.DeadlineFailureChecker\" />

<bean id=\"workingHourPerDayUpdater\" class=\"info.release.scheduler.WorkingHourPerDayUpdater\" />

<bean name=\"scheduledJob\" class=\"org.springframework.scheduling.quartz.JobDetailBean\">
    <property name=\"jobClass\" value=\"info.release.scheduler.ScheduledJob\" />
    <property name=\"jobDataAsMap\">
        <map>
            <entry key=\"deadlineFailureChecker\" value-ref=\"deadlineFailureChecker\" />
            <entry key=\"workingHourPerDayUpdater\" value-ref=\"workingHourPerDayUpdater\" />
        </map>
    </property>     
</bean>
现在,我想将属性值传递给info.release.scheduler.ScheduledJob,我做到了:
<bean id=\"scheduledJobBean\" class=\"info.release.scheduler.ScheduledJob\">
    <property name=\"afrodite\" ref=\"afrodite\" />
</bean>

<bean name=\"scheduledJob\" class=\"org.springframework.scheduling.quartz.JobDetailBean\">
    <property name=\"jobClass\">
        <bean factory-bean=\"scheduledJobBean\" factory-method=\"getClass\"></bean>
    </property>
    <property name=\"jobDataAsMap\">
        <map>
            <entry key=\"deadlineFailureChecker\" value-ref=\"deadlineFailureChecker\" />
            <entry key=\"workingHourPerDayUpdater\" value-ref=\"workingHourPerDayUpdater\" />
        </map>
    </property>     
</bean>
但是以下
System.out.println
正在打印
null
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
    System.out.println(\"=============================================\"+this.afrodite);

}
该方法属于
info.release.scheduler.ScheduledJob extends QuartzJobBean
。 我也做了一个实验
<bean id=\"scheduledJobBean\" class=\"info.release.scheduler.ScheduledJob\">
    <property name=\"afrodite\" ref=\"afrodite\" />
</bean> 
<bean id=\"scheduledJobBean\" class=\"info.release.scheduler.ScheduledJob\" init-method=\"init\">
    <property name=\"afrodite\" ref=\"afrodite\" />
</bean>
public void init() {
    System.out.println(\"=============================================\"+this.afrodite);
}
在此init中,
System.out.println
不是输出null而是值。 我不明白发生了什么! JobDetailBean是否重新实例化jobClass对象? 我需要设置的是
JobDetailBean
jobClass
属性的值类的属性。 谢谢并恭祝安康。     
已邀请:
我有同样的问题。我最终将其设为私有静态。使其如下
private static afrodite;
    

要回复问题请先登录注册