首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置org.springframework.scheduling.quartz.JobDetailBean的bean属性“jobClass”

设置org.springframework.scheduling.quartz.JobDetailBean的bean属性“jobClass”
EN

Stack Overflow用户
提问于 2011-05-24 17:55:31
回答 1查看 2.9K关注 0票数 1

我的项目有一个Quartz调度器,我将JobDetailBean设置为

代码语言:javascript
复制
<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一样,我做到了:

代码语言:javascript
复制
<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

代码语言:javascript
复制
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
    System.out.println("============================================="+this.afrodite);

}

此方法属于info.release.scheduler.ScheduledJob extends QuartzJobBean

我还做了一个实验,我设置

代码语言:javascript
复制
<bean id="scheduledJobBean" class="info.release.scheduler.ScheduledJob">
    <property name="afrodite" ref="afrodite" />
</bean> 

代码语言:javascript
复制
<bean id="scheduledJobBean" class="info.release.scheduler.ScheduledJob" init-method="init">
    <property name="afrodite" ref="afrodite" />
</bean>

代码语言:javascript
复制
public void init() {
    System.out.println("============================================="+this.afrodite);
}

在这个初始化中,System.out.println打印的不是null,而是值。

我不明白这是怎么回事!JobDetailBean是否正在重新实例化jobClass对象?

我需要的是设置JobDetailBeanjobClass属性的值类的属性。

谢谢并致以问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-24 18:00:31

我也有同样的问题。我最终将它设为私有静态。如下所示。

代码语言:javascript
复制
private static afrodite;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6108675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档