Quartz的job中注入的services接口为空的解决办法

自己重新定义一个类继承AdaptableJobFactory类

public class JobFactory extends AdaptableJobFactory {
    @Autowired
    private AutowireCapableBeanFactory capableBeanFactory;  

    @Override
    protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
        //调用父类的方法
        Object jobInstance = super.createJobInstance(bundle);
        //进行注入
        capableBeanFactory.autowireBean(jobInstance);
        return jobInstance;
    }
}

在sprig配置文件中配置

    <bean id="jobFactory" class="com.ka.common.quartz.JobFactory"></bean>

    <!-- 调度器 -->
    <bean name="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="jobFactory" ref="jobFactory"></property>
       	<!-- 通过applicationContextSchedulerContextKey属性配置spring上下文 -->
        <property name="applicationContextSchedulerContextKey">
            <value>applicationContext</value>
        </property>
    </bean>

在job中使用

public class QuartzTaskMeetingNoticeHandler implements Job {
	protected Logger log = LoggerFactory.getLogger(getClass());

	@Resource(name = "AdminJournalServices")
	protected IAdminJournalServices mIAdminJournalServices;
	@Resource(name = "AdminAccountServices")
	protected IAdminAccountServices mIAdminAccountServices;

	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		log.debug("-------------------获取调度任务 start--------------------");
	}
}

引用参考:http://blog.csdn.net/irabbit0708/article/details/52023437

时间: 2024-12-28 00:52:13

Quartz的job中注入的services接口为空的解决办法的相关文章

SQL Server中TOP子句可能导致的问题以及解决办法

原文:SQL Server中TOP子句可能导致的问题以及解决办法 简介      在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性.      关系数据库中SQL语句只是一个抽象的概念,不包含任何逻辑.很多元数据都会影响执行计划的生成,SQL语句本身并不作为生成执行计划所参考的元数据(提示除外),但TOP关键字却是直接影响执行计划的一个关键字,因此在某些情况下使用TOP会导致性能受到影响,下面我们来

检索 COM 类工厂中 CLSID 为 {{10020200-E260-11CF-AE68-00AA004A34D5}} 的组件时失败解决办法

检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下: 第一步:首先将msvcr71.dll,  SQLDMO.DLL, Resources/2052/sqldmo.rll,Resources/1033/sqldmo.rll 拷贝到C:/Program Files/Microsoft SQL Server/80/Tools/Binn目录. 下载SQLDMO文件 第二步:打开开始,在运行中输入 regsvr

arduino开发过程中编译问题undefined reference to `setup&#39;的解决办法

今天遇到这个问题,搜了很久也没有找到真正的答案. 后来灵光乍现,原来是出现了相同的目标文件,既有maze.h和maze.cpp,又有maze.ino,于是编译连接的时候就会出现ld错误了. 将maze.ino重命名为任意不重复的名字,重新编译,问题解决! yeah! arduino开发过程中编译问题undefined reference to `setup'的解决办法

关于SpringMVC中找不到&lt;mvc:resources/&gt;标签的解决办法

关于SpringMVC中找不到<mvc:resources/>标签的解决办法 在springMVC中我们经常会用到<mvc:resources/>标签,但是有些编辑器中的schema过于陈旧.导致找不到<mvc:resources/>标签. 经过试验,有两个解决办法: 1.替换文件: 打开window->preferences,在输入框输入xml找到xml Catalog.在右边中找到http://www.springframework.org/schema/mv

mysql导入数据库中的存储过程和函数出现错误的解决办法

mysql导入数据库中的存储过程和函数出现错误的解决办法 调用一个远程拷贝的本地Mysql的储存过程 报错:[Err] 1449 - The user specified as a definer ('repl'@'192.168.1.%') does not exist  解决想法: 凭借以前经常见到的[email protected]报错,给root赋值所有权限: grant all privileges on *.* to [email protected]"%" identif

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: &qu

Linux中ftp不能上传文件/目录的解决办法

在linux中不能上传文件或文件夹最多的问题就是权限问题,但有时也不一定是权限问题了,像我就是空间不够用了,下面我来总结一些ftp不能上传文件/目录的解决办法 在排除用户组和权限等问题后,最可能引起ftp下文件无法上传并经常被忽略的因素就是硬盘空间已满,而导致硬盘空间满的问题多数是日志文件所占用的,例如mysql的日志会在不知不觉中变得十分庞大,直至占满剩余的硬盘空间. 解决办法: 1.定期手动清理或使用脚本清理mysql日志或其他相关日志文件. 2.关闭mysql日志(不推荐) 上面是空间有问

Ubuntu 14.04 LTS 火狐浏览器中,鼠标选择文字被删除的解决办法

这篇文章主要介绍了Ubuntu 火狐浏览器中,鼠标选择文字被删除的解决办法,需要的朋友可以参考下在终端中输入命令: ibus-setup将 "在应用程序窗口中启用内嵌编辑模式" 选项取消 原文地址:https://www.cnblogs.com/onelikeone/p/9071460.html

quartz的job中注入spring对象!

一般情况下,quartz的job中使用autowired注解注入的对象为空,这时候我们就要使用spring-quartz提供的AdaptableJobFactory类. 自定义一个类: [java] view plain copy public class JobFactory extends AdaptableJobFactory { @Autowired private AutowireCapableBeanFactory capableBeanFactory; @Override prot