NutzCN Logo
问答 nutz中 在quartz的执行类excute中 获得的数据源dao为null ,有没有人遇到过
发布于 3102天前 作者 qq_5a31be25 2579 次浏览 复制 上一个帖子 下一个帖子
标签: quartz ioc

在nutz中增加了quartz,但在执行quartz时 获取不到dao数据源, QQ截图20151026134817_png

6 回复

@wendal 这个可以怎么破 ,是不是获得不到注解了

解决方案有2个

  1. 用 nutz-integration-quartz
  2. 做一个NutQuartzJobFactory
public class NutQuartzJobFactory implements JobFactory {

	private static final Log log = Logs.get();

	protected SimpleJobFactory simple = new SimpleJobFactory();

	public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws SchedulerException {
		try {
			return Mvcs.ctx().getDefaultIoc().get(bundle.getJobDetail().getJobClass());
		}
		catch (Exception e) {
			log.warn("Not ioc bean? fallback to SimpleJobFactory", e);
		}
		return simple.newJob(bundle, scheduler);
	}

}

还有一个办法, 直接从ioc拿需要的对象,而不是依赖注入

public ............... {
Dao dao = Mvcs.ctx().getDefaultIoc().get(Dao.class);
.... 
}

@wendal 通过JobDetail 的dataMap把ioc传过去了

@qq_5a31be25 是个办法 ^_^

添加回复
请先登陆
回到顶部