亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? schedulerfactorybean.java

?? spring framework 2.5.4源代碼
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:


	/**
	 * Register objects in the Scheduler context via a given Map.
	 * These objects will be available to any Job that runs in this Scheduler.
	 * <p>Note: When using persistent Jobs whose JobDetail will be kept in the
	 * database, do not put Spring-managed beans or an ApplicationContext
	 * reference into the JobDataMap but rather into the SchedulerContext.
	 * @param schedulerContextAsMap Map with String keys and any objects as
	 * values (for example Spring-managed beans)
	 * @see JobDetailBean#setJobDataAsMap
	 */
	public void setSchedulerContextAsMap(Map schedulerContextAsMap) {
		this.schedulerContextMap = schedulerContextAsMap;
	}

	public void setApplicationContext(ApplicationContext applicationContext) {
		this.applicationContext = applicationContext;
	}

	/**
	 * Set the key of an ApplicationContext reference to expose in the
	 * SchedulerContext, for example "applicationContext". Default is none.
	 * Only applicable when running in a Spring ApplicationContext.
	 * <p>Note: When using persistent Jobs whose JobDetail will be kept in the
	 * database, do not put an ApplicationContext reference into the JobDataMap
	 * but rather into the SchedulerContext.
	 * <p>In case of a QuartzJobBean, the reference will be applied to the Job
	 * instance as bean property. An "applicationContext" attribute will
	 * correspond to a "setApplicationContext" method in that scenario.
	 * <p>Note that BeanFactory callback interfaces like ApplicationContextAware
	 * are not automatically applied to Quartz Job instances, because Quartz
	 * itself is reponsible for the lifecycle of its Jobs.
	 * @see JobDetailBean#setApplicationContextJobDataKey
	 * @see org.springframework.context.ApplicationContext
	 */
	public void setApplicationContextSchedulerContextKey(String applicationContextSchedulerContextKey) {
		this.applicationContextSchedulerContextKey = applicationContextSchedulerContextKey;
	}

	/**
	 * Set the Quartz JobFactory to use for this Scheduler.
	 * <p>Default is Spring's {@link AdaptableJobFactory}, which supports
	 * {@link java.lang.Runnable} objects as well as standard Quartz
	 * {@link org.quartz.Job} instances. Note that this default only applies
	 * to a <i>local</i> Scheduler, not to a RemoteScheduler (where setting
	 * a custom JobFactory is not supported by Quartz).
	 * <p>Specify an instance of Spring's {@link SpringBeanJobFactory} here
	 * (typically as an inner bean definition) to automatically populate a job's
	 * bean properties from the specified job data map and scheduler context.
	 * @see AdaptableJobFactory
	 * @see SpringBeanJobFactory
	 */
	public void setJobFactory(JobFactory jobFactory) {
		this.jobFactory = jobFactory;
		this.jobFactorySet = true;
	}


	/**
	 * Set whether any jobs defined on this SchedulerFactoryBean should overwrite
	 * existing job definitions. Default is "false", to not overwrite already
	 * registered jobs that have been read in from a persistent job store.
	 */
	public void setOverwriteExistingJobs(boolean overwriteExistingJobs) {
		this.overwriteExistingJobs = overwriteExistingJobs;
	}

	/**
	 * Set the location of a Quartz job definition XML file that follows the
	 * "job_scheduling_data_1_0" DTD. Can be specified to automatically
	 * register jobs that are defined in such a file, possibly in addition
	 * to jobs defined directly on this SchedulerFactoryBean.
	 * @see ResourceJobSchedulingDataProcessor
	 * @see org.quartz.xml.JobSchedulingDataProcessor
	 */
	public void setJobSchedulingDataLocation(String jobSchedulingDataLocation) {
		this.jobSchedulingDataLocations = new String[] {jobSchedulingDataLocation};
	}

	/**
	 * Set the locations of Quartz job definition XML files that follow the
	 * "job_scheduling_data_1_0" DTD. Can be specified to automatically
	 * register jobs that are defined in such files, possibly in addition
	 * to jobs defined directly on this SchedulerFactoryBean.
	 * @see ResourceJobSchedulingDataProcessor
	 * @see org.quartz.xml.JobSchedulingDataProcessor
	 */
	public void setJobSchedulingDataLocations(String[] jobSchedulingDataLocations) {
		this.jobSchedulingDataLocations = jobSchedulingDataLocations;
	}

	/**
	 * Register a list of JobDetail objects with the Scheduler that
	 * this FactoryBean creates, to be referenced by Triggers.
	 * <p>This is not necessary when a Trigger determines the JobDetail
	 * itself: In this case, the JobDetail will be implicitly registered
	 * in combination with the Trigger.
	 * @see #setTriggers
	 * @see org.quartz.JobDetail
	 * @see JobDetailBean
	 * @see JobDetailAwareTrigger
	 * @see org.quartz.Trigger#setJobName
	 */
	public void setJobDetails(JobDetail[] jobDetails) {
		// Use modifiable ArrayList here, to allow for further adding of
		// JobDetail objects during autodetection of JobDetailAwareTriggers.
		this.jobDetails = new ArrayList(Arrays.asList(jobDetails));
	}

	/**
	 * Register a list of Quartz Calendar objects with the Scheduler
	 * that this FactoryBean creates, to be referenced by Triggers.
	 * @param calendars Map with calendar names as keys as Calendar
	 * objects as values
	 * @see org.quartz.Calendar
	 * @see org.quartz.Trigger#setCalendarName
	 */
	public void setCalendars(Map calendars) {
		this.calendars = calendars;
	}

	/**
	 * Register a list of Trigger objects with the Scheduler that
	 * this FactoryBean creates.
	 * <p>If the Trigger determines the corresponding JobDetail itself,
	 * the job will be automatically registered with the Scheduler.
	 * Else, the respective JobDetail needs to be registered via the
	 * "jobDetails" property of this FactoryBean.
	 * @see #setJobDetails
	 * @see org.quartz.JobDetail
	 * @see JobDetailAwareTrigger
	 * @see CronTriggerBean
	 * @see SimpleTriggerBean
	 */
	public void setTriggers(Trigger[] triggers) {
		this.triggers = Arrays.asList(triggers);
	}


	/**
	 * Specify Quartz SchedulerListeners to be registered with the Scheduler.
	 */
	public void setSchedulerListeners(SchedulerListener[] schedulerListeners) {
		this.schedulerListeners = schedulerListeners;
	}

	/**
	 * Specify global Quartz JobListeners to be registered with the Scheduler.
	 * Such JobListeners will apply to all Jobs in the Scheduler.
	 */
	public void setGlobalJobListeners(JobListener[] globalJobListeners) {
		this.globalJobListeners = globalJobListeners;
	}

	/**
	 * Specify named Quartz JobListeners to be registered with the Scheduler.
	 * Such JobListeners will only apply to Jobs that explicitly activate
	 * them via their name.
	 * @see org.quartz.JobListener#getName
	 * @see org.quartz.JobDetail#addJobListener
	 * @see JobDetailBean#setJobListenerNames
	 */
	public void setJobListeners(JobListener[] jobListeners) {
		this.jobListeners = jobListeners;
	}

	/**
	 * Specify global Quartz TriggerListeners to be registered with the Scheduler.
	 * Such TriggerListeners will apply to all Triggers in the Scheduler.
	 */
	public void setGlobalTriggerListeners(TriggerListener[] globalTriggerListeners) {
		this.globalTriggerListeners = globalTriggerListeners;
	}

	/**
	 * Specify named Quartz TriggerListeners to be registered with the Scheduler.
	 * Such TriggerListeners will only apply to Triggers that explicitly activate
	 * them via their name.
	 * @see org.quartz.TriggerListener#getName
	 * @see org.quartz.Trigger#addTriggerListener
	 * @see CronTriggerBean#setTriggerListenerNames
	 * @see SimpleTriggerBean#setTriggerListenerNames
	 */
	public void setTriggerListeners(TriggerListener[] triggerListeners) {
		this.triggerListeners = triggerListeners;
	}


	/**
	 * Set whether to automatically start the scheduler after initialization.
	 * Default is "true"; set this to "false" to allow for manual startup.
	 */
	public void setAutoStartup(boolean autoStartup) {
		this.autoStartup = autoStartup;
	}

	/**
	 * Set the number of seconds to wait after initialization before
	 * starting the scheduler asynchronously. Default is 0, meaning
	 * immediate synchronous startup on initialization of this bean.
	 * <p>Setting this to 10 or 20 seconds makes sense if no jobs
	 * should be run before the entire application has started up.
	 */
	public void setStartupDelay(int startupDelay) {
		this.startupDelay = startupDelay;
	}

	/**
	 * Set whether to wait for running jobs to complete on shutdown.
	 * <p>Default is "false". Switch this to "true" if you prefer
	 * fully completed jobs at the expense of a longer shutdown phase.
	 * @see org.quartz.Scheduler#shutdown(boolean)
	 */
	public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown) {
		this.waitForJobsToCompleteOnShutdown = waitForJobsToCompleteOnShutdown;
	}


	//---------------------------------------------------------------------
	// Implementation of InitializingBean interface
	//---------------------------------------------------------------------

	public void afterPropertiesSet() throws Exception {
		if (this.dataSource == null && this.nonTransactionalDataSource != null) {
			this.dataSource = this.nonTransactionalDataSource;
		}

		// Create SchedulerFactory instance.
		SchedulerFactory schedulerFactory = (SchedulerFactory)
				BeanUtils.instantiateClass(this.schedulerFactoryClass);

		initSchedulerFactory(schedulerFactory);

		if (this.taskExecutor != null) {
			// Make given TaskExecutor available for SchedulerFactory configuration.
			configTimeTaskExecutorHolder.set(this.taskExecutor);
		}
		if (this.dataSource != null) {
			// Make given DataSource available for SchedulerFactory configuration.
			configTimeDataSourceHolder.set(this.dataSource);
		}
		if (this.nonTransactionalDataSource != null) {
			// Make given non-transactional DataSource available for SchedulerFactory configuration.
			configTimeNonTransactionalDataSourceHolder.set(this.nonTransactionalDataSource);
		}


		// Get Scheduler instance from SchedulerFactory.
		try {
			this.scheduler = createScheduler(schedulerFactory, this.schedulerName);
			if (!this.jobFactorySet && !(this.scheduler instanceof RemoteScheduler)) {
				// Use AdaptableJobFactory as default for a local Scheduler, unless when
				// explicitly given a null value through the "jobFactory" bean property.
				this.jobFactory = new AdaptableJobFactory();
			}
			if (this.jobFactory != null) {
				if (this.jobFactory instanceof SchedulerContextAware) {
					((SchedulerContextAware) this.jobFactory).setSchedulerContext(this.scheduler.getContext());
				}
				this.scheduler.setJobFactory(this.jobFactory);
			}
		}

		finally {
			if (this.taskExecutor != null) {
				configTimeTaskExecutorHolder.set(null);
			}
			if (this.dataSource != null) {
				configTimeDataSourceHolder.set(null);
			}
			if (this.nonTransactionalDataSource != null) {
				configTimeNonTransactionalDataSourceHolder.set(null);
			}
		}

		populateSchedulerContext();

		registerListeners();

		registerJobsAndTriggers();

		// Start Scheduler immediately, if demanded.
		if (this.autoStartup) {
			startScheduler(this.scheduler, this.startupDelay);
		}
	}


	/**
	 * Load and/or apply Quartz properties to the given SchedulerFactory.
	 * @param schedulerFactory the SchedulerFactory to initialize
	 */
	private void initSchedulerFactory(SchedulerFactory schedulerFactory)
			throws SchedulerException, IOException {

		if (this.configLocation != null || this.quartzProperties != null ||
				this.dataSource != null || this.schedulerName != null || this.taskExecutor != null) {

			if (!(schedulerFactory instanceof StdSchedulerFactory)) {
				throw new IllegalArgumentException("StdSchedulerFactory required for applying Quartz properties");
			}

			Properties mergedProps = new Properties();

			// Set necessary default properties here, as Quartz will not apply
			// its default configuration when explicitly given properties.
			if (this.taskExecutor != null) {
				mergedProps.setProperty(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, LocalTaskExecutorThreadPool.class.getName());
			}
			else {
				mergedProps.setProperty(StdSchedulerFactory.PROP_THREAD_POOL_CLASS, SimpleThreadPool.class.getName());
				mergedProps.setProperty(PROP_THREAD_COUNT, Integer.toString(DEFAULT_THREAD_COUNT));
			}

			if (this.configLocation != null) {
				if (logger.isInfoEnabled()) {
					logger.info("Loading Quartz config from [" + this.configLocation + "]");
				}
				PropertiesLoaderUtils.fillProperties(mergedProps, this.configLocation);
			}

			CollectionUtils.mergePropertiesIntoMap(this.quartzProperties, mergedProps);

			if (this.dataSource != null) {
				mergedProps.put(StdSchedulerFactory.PROP_JOB_STORE_CLASS, LocalDataSourceJobStore.class.getName());
			}

			// Make sure to set the scheduler name as configured in the Spring configuration.
			if (this.schedulerName != null) {
				mergedProps.put(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, this.schedulerName);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人porn| 欧美亚洲综合在线| 国产在线精品一区二区不卡了 | 亚洲午夜精品网| 亚洲欧洲日产国码二区| 综合精品久久久| 一色桃子久久精品亚洲| 成人欧美一区二区三区白人 | 中文一区一区三区高中清不卡| 久久久久久久久一| 国产情人综合久久777777| 久久天天做天天爱综合色| 中文字幕精品—区二区四季| 国产精品久久影院| 亚洲精品国产视频| 亚洲二区在线视频| 日本免费新一区视频| 狠狠色丁香九九婷婷综合五月| 精品一区二区日韩| 国产精品亚洲第一| 99久久婷婷国产| 欧美性受xxxx黑人xyx性爽| 欧美日本在线观看| 欧美精品一区二区三区高清aⅴ| 久久久亚洲国产美女国产盗摄 | 国产精品福利影院| 亚洲在线观看免费| 日韩精品电影在线观看| 精品在线观看免费| 99r国产精品| 欧美精品三级在线观看| 精品国产第一区二区三区观看体验 | 欧美视频一区二| 日韩欧美中文一区二区| 国产无人区一区二区三区| 亚洲免费观看在线观看| 亚洲综合激情网| 老司机精品视频线观看86 | 国产视频亚洲色图| 亚洲欧美日本在线| 蜜桃传媒麻豆第一区在线观看| 极品美女销魂一区二区三区免费 | 欧美变态tickling挠脚心| 国产蜜臀97一区二区三区| 玉米视频成人免费看| 九九九精品视频| jiyouzz国产精品久久| 欧美男女性生活在线直播观看| 国产天堂亚洲国产碰碰| 亚洲国产成人porn| 成人午夜激情影院| 6080yy午夜一二三区久久| 久久精品亚洲精品国产欧美| 亚洲综合精品自拍| 国产91在线|亚洲| 欧美日韩高清在线播放| 欧美国产一区二区| 美女精品一区二区| 色av一区二区| 久久精品综合网| 亚洲午夜精品网| a4yy欧美一区二区三区| 日韩情涩欧美日韩视频| 亚洲蜜臀av乱码久久精品蜜桃| 国产一区二区三区精品视频| 欧美午夜精品免费| 日本一区二区成人| 久久99国产精品久久99| 欧美群妇大交群中文字幕| 国产精品乱码久久久久久| 精品一区二区三区在线播放视频 | 日韩视频在线永久播放| 亚洲日本在线天堂| 国产精品综合一区二区三区| 在线不卡免费av| 亚洲精品成人悠悠色影视| 丁香婷婷综合网| 欧美精品一区二区三区久久久| 午夜精品aaa| 91极品视觉盛宴| 亚洲三级在线播放| 成人综合激情网| 久久久久久久综合狠狠综合| 日韩不卡一区二区三区| 欧美三级在线视频| 亚洲精品免费在线观看| www.亚洲激情.com| 亚洲国产成人一区二区三区| 国产乱色国产精品免费视频| 日韩丝袜美女视频| 蜜桃在线一区二区三区| 欧美日韩国产一级| 亚洲与欧洲av电影| 欧美亚洲一区二区在线观看| 亚洲欧美经典视频| 色综合欧美在线视频区| 亚洲欧美日韩系列| 99麻豆久久久国产精品免费| 国产精品久久久久婷婷| av色综合久久天堂av综合| 国产女主播在线一区二区| 国产高清一区日本| 久久精品男人的天堂| 国产精品99久久久| 久久九九久久九九| 岛国精品在线观看| 国产精品美女久久久久久久久 | 精品日韩成人av| 精品一区二区在线看| 26uuu欧美日本| 国产麻豆精品theporn| 国产欧美日韩精品a在线观看| 丁香天五香天堂综合| 中文字幕永久在线不卡| 97久久精品人人澡人人爽| 亚洲蜜臀av乱码久久精品| 91国在线观看| 丝袜美腿亚洲一区二区图片| 欧美日韩1区2区| 久久精品国产亚洲高清剧情介绍| 日韩欧美亚洲国产另类 | 欧美精品久久久久久久久老牛影院| 五月综合激情网| 日韩一级二级三级| 国产一区二区三区日韩| 国产精品日韩成人| 日本电影欧美片| 日韩高清不卡一区二区| 精品国产一区二区三区久久影院 | 色综合天天狠狠| 亚洲第一在线综合网站| 日韩一区二区三区在线视频| 国产精品白丝av| 亚洲图片激情小说| 91精品国产日韩91久久久久久| 国模套图日韩精品一区二区| 综合自拍亚洲综合图不卡区| 欧美日韩美女一区二区| 精品一区二区三区的国产在线播放| 国产精品系列在线| 欧美无砖专区一中文字| 久久av资源网| 亚洲图片激情小说| 日韩欧美在线不卡| 成人黄色软件下载| 日本不卡一二三| 国产精品亲子乱子伦xxxx裸| 欧洲精品在线观看| 久久99精品久久久久婷婷| 亚洲欧美激情小说另类| 日韩精品一区二区三区在线| 成人av资源在线| 免费观看在线综合| 中文字幕在线不卡| 精品少妇一区二区三区在线播放 | www.色精品| 日韩电影在线免费观看| 国产精品午夜春色av| 欧美夫妻性生活| 99国产精品久久久久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 最新国产成人在线观看| 日韩欧美精品在线视频| 91免费视频网| 国产一区二区导航在线播放| 亚洲一区在线观看网站| 欧美国产日韩a欧美在线观看| 欧美疯狂做受xxxx富婆| 99久久er热在这里只有精品66| 久久不见久久见中文字幕免费| 伊人色综合久久天天| 久久久久久久久蜜桃| 欧美一区二区免费| 色狠狠一区二区| 成人ar影院免费观看视频| 免费欧美日韩国产三级电影| 亚洲精品久久7777| 国产精品免费视频网站| 欧美成人r级一区二区三区| 在线观看国产91| www.欧美日韩| 国产剧情一区在线| 麻豆成人久久精品二区三区红 | 91福利社在线观看| 成人午夜激情在线| 国产精品538一区二区在线| 蜜臀va亚洲va欧美va天堂| 亚洲一区二区精品视频| 自拍偷自拍亚洲精品播放| 欧美激情综合在线| 精品免费国产一区二区三区四区| 3d成人h动漫网站入口| 色八戒一区二区三区| 色综合视频在线观看| 99国产精品久久久久久久久久久 | 欧美tickling网站挠脚心| 91精品久久久久久久91蜜桃| 欧美写真视频网站| 色综合久久天天| 色综合中文综合网|