zoukankan      html  css  js  c++  java
  • quartz 的job中获取到applicationContext

    第一步:
    定义SchedulerFactoryBean的applicationContextSchedulerContextKey
    <bean name="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
                    <!-- 注入数据源 -->  
    		<property name="dataSource">  
    			<ref bean="dataSource" />  
    		</property>
                    <!-- 延迟30秒启动Scheduler -->  
    		<property name="startupDelay" value="30"></property>
                    <!-- 通过applicationContextSchedulerContextKey属性配置spring上下文 -->  
    		<property name="applicationContextSchedulerContextKey">  
    			<value>applicationContext</value>  
    		</property> 
    </bean>
     
    定义之后,产生的效果是:
    this.scheduler.getContext().put(this.applicationContextSchedulerContextKey, this.applicationContext);
    第二步:
    获取到scheduler,然后从中取出applicationContext 即可
    public class TestJob extends QuartzJobBean {
    
    	@Override
    	protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
    		Scheduler scheduler = (Scheduler) context.getScheduler();  
    		//获取JobExecutionContext中的service对象  
                   try {
                            //获取JobExecutionContext中的service对象 
    			SchedulerContext schCtx = context.getScheduler().getContext();
                            //获取Spring中的上下文  
    			ApplicationContext appCtx = (ApplicationContext)schCtx.get("applicationContext");
    			jobService= (JobService)appCtx.getBean("jobService");
    			....
    		} catch (SchedulerException e1) {
    			// TODO 尚未处理异常
    			e1.printStackTrace();
    		} 
    	} 
    };


     
  • 相关阅读:
    webdriver学习
    [Sqlite]-->Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程(转)
    java 二维码
    java 解析json超大文件(转)
    嵌套三目运算符
    实体的字段以is开头的教训
    easyui中formatter的使用
    springmvc中的controller是单例的
    hibernate 中baseservice中添加事物
    easyui中添加富文本编辑器
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3473650.html
Copyright © 2011-2022 走看看