0 0

Spring中使用Quartz,但是xml文件太长了,想要把其中的Beans定义在其他的文件中5

问题如标题,想知道有没有什么方法可以实现,我使用了import,发现老是提示说找不到定义的Bean.

quartz.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
 	<import resource="bin/message.xml"/>
	
	<bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref local="job" />
		</property>
		<property name="cronExpression" value="0/5 * * * * ?" />
	</bean>

	<bean id="trigger2" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref local="job" />
		</property>
		<property name="cronExpression" value="0/10 * * * * ?" />
	</bean>

	<bean id="schdulerFactory"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="trigger" />
				<ref local="trigger2" />
			</list>
		</property>
	</bean>
</beans>


message.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="job" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass">
			<value>test.MessageJob</value>
		</property>
		<property name="jobDataAsMap">
			<map>
				<entry key="message">
					<value>Another Xml File!</value>
				</entry>
			</map>
		</property>
	</bean>
</beans>


main.java:
package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		ApplicationContext ctx = new FileSystemXmlApplicationContext("./bin/quartz.xml");	
	}

}


MessageJob.java:
package test;

import java.util.Map;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MessageJob implements Job {

	public void execute(JobExecutionContext context) throws JobExecutionException {
		
		Map properties = context.getJobDetail().getJobDataMap();
		System.out.println("Current Fire Time: " + context.getFireTime());
		System.out.println(properties.get("message"));
		
	}
}
2014年2月18日 16:22

1个答案 按时间排序 按投票排序

0 0

采纳的答案

quartz.xml和message.xml在同级目录的话,<import resource="message.xml" />
就可以了,看你的目录层次调整下路径。

2014年2月18日 16:34

相关推荐

    Spring中Quartz的配置

    本文将详细介绍如何在Spring项目中配置和使用Quartz,帮助开发者更好地理解和掌握这项技术。 #### 二、Quartz简介 Quartz是一个全面的、开放源代码的作业调度框架,它可以被应用在J2EE和J2SE应用程序中,用于处理...

    spring3+ quartz1.8使用以及eclipse代码

    首先,我们需要在Spring的配置文件中引入Quartz的相关依赖。在`beans.xml`中添加以下内容: ```xml &lt;bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; ...

    使用spring的quartz定时器要用到的jar包

    在配置方面,你需要在Spring的XML配置文件中声明一个`SchedulerFactoryBean`,这将创建并启动Quartz调度器。例如: ```xml &lt;bean id="scheduler" class="org.springframework.scheduling.quartz....

    spring-boot-quartz

    在Spring Boot应用中引入Quartz,我们需要在`pom.xml`或`build.gradle`文件中添加Quartz的依赖。对于Maven用户,添加如下依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-...

    定时框架spring+quartz

    2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,定义Quartz的相关bean,包括SchedulerFactoryBean、JobDetail和Trigger。这些配置会告诉Quartz如何启动、何时运行以及运行哪些任务。 3. **...

    Spring整合Quartz

    Spring整合Quartz是一个常见...2. **配置Spring**:在Spring的配置文件中,我们需要声明一个`SchedulerFactoryBean`,并配置相关的Quartz属性,如数据库连接(如果使用了JobStore)和Job及Trigger的类路径等。 ```xml ...

    spring+quartz需要的4个jar包 不需要6个

    在Quartz的配置中,你需要定义Scheduler、JobDetail、Trigger等元素,这些都可以通过XML配置文件或者使用Spring的`@Configuration`注解来实现。例如,创建一个简单的Job: ```java import org.springframework....

    Quartz2.2.3+Spring4.3.14整合demo

    4. 配置 Spring:在 `applicationContext.xml` 中定义 Job 和 Trigger 的 Bean,使用 Spring 的 `QuartzJobBean` 来托管 Job,然后定义 Trigger 来指定 Job 的执行时机。 5. 初始化 Quartz:在 `web.xml` 中添加一个...

    spring-boot使用quartz框架定时发送邮件

    在`pom.xml`或`build.gradle`文件中,添加Quartz和Spring Boot对邮件支持的依赖: 对于Maven: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-quartz &lt;groupId&gt;org.spring...

    QuartzSpring

    在Spring中使用Quartz时,通常不再需要`quartz.properties`和`quartz-jobs.xml`这两个配置文件。Spring会自动加载Quartz包中默认的配置,如果需要自定义这些配置,可以直接在Spring的XML配置文件中进行设定。 下面...

    spring-beans-3.0.2.RELEASE.jar.zip

    至于“spring使用quartz所需jar包”的描述,这意味着Spring Beans可以与其他库如Quartz进行集成,Quartz是一个开源的任务调度框架,Spring提供了一套API来方便地在应用程序中调度任务,如定时执行业务逻辑。...

    Spring调度器Quartz笔记

    然后在 Spring 配置文件 `beans.xml` 中,我们创建了一个 `JobDetailBean` 实例,设置了它的 `jobClass` 属性为 `HelloWordBean` 类。接着,我们定义了两种类型的触发器: - **SimpleTriggerBean**:这是一个基于...

    Spring中Quartz的配置[总结].pdf

    在Spring框架中集成Quartz...总结来说,Spring与Quartz的集成使得我们可以方便地在应用中添加定时任务,通过配置文件定义任务的执行逻辑和触发时机。同时,Cron表达式的灵活性使得我们可以根据需要精确控制任务的调度。

    在Java的Spring框架中配置Quartz的教程

    在Java的Spring框架中配置Quartz涉及到几个主要步骤,首先是确保所需的JAR包已经导入到项目中,然后在web.xml中配置Spring启动时加载Quartz配置文件,并编写Quartz的配置文件。 首先,关于Quartz和Spring框架的概述...

    spring quartz定时器的简单配置和使用

    在上面的配置文件中,我们使用了Cron表达式来定义任务的执行时间。下面是对Cron表达式的解释: - `0/2 * * * * ?`:表示每两秒执行一次。 - 第一位(秒):`0/2` 表示从0秒开始,每隔2秒执行一次。 - 第二位...

    spring-cache.xsd+spring-encache.xsd

    标题中的"spring-cache.xsd+spring-encache.xsd"提到了两个XML Schema定义文件,它们是Spring框架中用于缓存管理的配置规范。Spring框架是一个广泛应用的Java企业级应用开发框架,它提供了多种功能,包括但不限于...

    spring task quartz

    在`spring.xml`配置文件中,我们可以看到如何将Spring Task和Quartz集成到Spring应用中。配置Spring Task通常只需要开启调度器和配置`@Scheduled`注解的扫描。对于Quartz,我们需要配置`SchedulerFactoryBean`,包括...

    spring 定时器 注解+xml 方式模板

    如果你更倾向于XML配置,可以在Spring的配置文件中添加`&lt;task:scheduled-tasks&gt;`元素,并在其中定义任务。下面是一个例子: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    Quartz在Spring中动态设置cronExpression.docx

    - **Spring中的配置**:在Spring框架中,可以通过XML配置文件来定义Quartz的任务。例如,以下代码展示了如何配置一个名为`loadCategoryToCacheTask`的任务,并指定具体的执行方法: ```xml &lt;beans&gt; ...

Global site tag (gtag.js) - Google Analytics