这是我项目中的一个小例子,每天定时删除验证图片(用户登陆和注册时自动生成的所需图片)
一、首先是一个作业代码,用于在指定目录删除验证图片:
package ep.spring.model.quartz;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.StatefulJob;
import java.io.File;
import java.io.Serializable;
import java.util.Map;
/**
* 定时清空校验图
* @author fangbiao
*
*/
public class DelCodeCheckJob implements StatefulJob,Serializable{
//所有的成员变量都是瞬时的
private transient String imagePath;
private transient File imageFile;
private transient Map mapMsg;
public DelCodeCheckJob(){}
public void execute(JobExecutionContext context) throws JobExecutionException {
mapMsg = context.getMergedJobDataMap();
imagePath = System.getenv("tomcat_home").replace('\\', '/')+"/webapps/eppj/images/codeCheck";
imageFile = new File(imagePath);
if(imageFile.exists()){
if(imageFile.list().length !=0){
if(imageFile.delete()){
mapMsg.put("messages", "清空校验图成功...");
}
}else{
mapMsg.put("messages", "校验图缓存目录是空的,无需清空...");
}
}
System.out.println("[任务:"+context.getJobDetail().getName()+"]"+mapMsg.get("messages"));
}
}
二、配置quartz,用于指定作业的时间调度 quartz.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- job -->
<!-- 验证图片清空作业 -->
<bean id="delImageJob"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>ep.spring.model.quartz.DelCodeCheckJob</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="messages">
<value>delCodeCheckJob 初始化 ...</value>
</entry>
</map>
</property>
<!-- (当你需要applicationContext环境时,可以增加该参数)
<property name="applicationContextJobDataKey">
<value>applicationContext</value>
</property>
--></bean>
<!-- trigger -->
<bean id="delImageTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref local="delImageJob"/>
</property>
<property name="cronExpression">
<!-- 每天3点开始进行一次清理 -->
<value>0 0 3 * * ?</value>
</property>
</bean>
</beans>
三、在web.xml加载quartz.xml,由于我是整合spring+jsf环境下开发的,所以我把这个配置放在:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/datasource.xml,/WEB-INF/applicationContext.xml,/WEB-INF/quartz.xml</param-value>
</context-param>
OK!如果想要把相关的调度数据存储到数据库怎办?下面提供一个配置,因项目不必须,所以没有多加测试,不过具体可到http://www.opensymphony.com/quartz 参考其相关配置.
以下是一个参考文件:quartzJdbc.properties
#配置Scheduler的基本信息
org.quartz.scheduler.instanceName = SpringBookScheduler
org.quartz.scheduler.instanceId = AUTO
#配置Quartz的线程池
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 15
org.quartz.threadPool.threadPriority = 5
#配置所采用的JobStore方式
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.useProperties = false
#配置Quartz持久化
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.dataSource = epDS
org.quartz.datasource.epDS.driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
org.quartz.datasource.epDS.URL = jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=epDB
org.quartz.datasource.epDS.user = sa
org.quartz.datasource.epDS.password = 1234
rog.quartz.datasource.epDs.validationQuery = select 1
数据库连接池配置有多种方式,我用的是jtds ,SQLServerDriver真的是有问题,不整了我好久。
分享到:
相关推荐
在这个项目中,Spring提供依赖注入和管理组件的能力,Quartz则用于定义和执行应用程序中的定时任务,而Maven则是用来管理和构建项目的工具。 **Spring框架3.2** Spring是Java领域的一个开源框架,主要用于简化企业...
《Spring3.x企业应用开发实战》是一本深入探讨Spring框架在企业级应用开发中的实践指南。作者陈雄华和林开雄通过这本书,为读者揭示了Spring 3.x版本的核心特性和最佳实践,旨在帮助开发者高效地利用Spring进行系统...
《Spring3.x企业应用开发实战》是一本深入探讨Spring框架在企业级应用开发中的实践书籍,作者陈雄华通过丰富的示例代码,帮助读者理解并掌握Spring的核心特性和实际运用。这里的压缩包文件包含了书中各个章节的示例...
《Spring 3.x企业应用开发实战》是一本深入讲解Spring框架在实际企业环境中应用的教程。结合《Spring MVC 3.0实战指南》,本书旨在帮助读者掌握Spring 3.x版本的核心特性和最佳实践,以便在现代Java应用开发中实现...
- **功能简介**:包含在应用中使用 Spring 的 AOP 特性时所需的类,如声明式事务管理。 - **应用场景**:适用于需要使用 AOP 功能的项目。 - **依赖关系**:依赖于 `spring-core.jar`、`spring-beans.jar`、`cglib-...
2. **Chapter 2**:可能是关于Spring的环境搭建和基本概念的介绍,源代码可能包含简单的Hello World程序,演示了如何创建一个Spring项目,配置Spring环境,并执行一个基本的Spring应用。 3. **Chapter 7**:通常...
在"SpringDemo"项目中,你可以找到一个简单的Spring应用示例,它可能包含了配置文件(如 applicationContext.xml)、Controller类、Service类以及DAO类。通过阅读和运行这个示例,你可以更好地了解Spring框架如何在...
这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 (4) spring-context.jar 这个jar文件...
这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。 (4) spring-context.jar 这个jar文件...
16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A...
9. **集成其他框架**:Spring 2.5.6能够与许多其他框架无缝集成,如Struts、JSF、EJB等,以及消息队列系统(如JMS)和任务调度器(如Quartz)。 10. **国际化支持**:Spring提供了对多语言环境的支持,可以通过...
Spring框架是Java开发中广泛应用的一个开源框架,以其模块化、灵活性和强大的功能著称。4.2.4.RELEASE是Spring框架的一个稳定版本,包含了众多关键组件和改进。在这个压缩包中,用户可以找到Spring的核心组件、源码...
在Spring 2.x版本中,引入了许多增强特性和改进,旨在提高开发效率和应用程序的可维护性。 首先,Spring的核心特性之一是依赖注入(Dependency Injection,DI),它允许对象之间的关系在运行时通过外部容器来管理,...
包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 18. spring-webmvc-4.1.1.RELEASE.jar 包含...
9. **与其他框架的整合**:Spring 2.5增强了与Struts、JSF等其他Web框架的集成,以及与Quartz、JBoss等任务调度、EJB等企业服务的整合。 10. **性能优化**:Spring 2.5在性能方面也有提升,包括更快的启动时间,更...
16.4.4 在JSF中暴露应用程序环境 16.5 Spring中带有DWR的支持Ajax的应用程序 16.5.1 直接Web远程控制 16.5.2 访问Spring管理的Bean DWR 16.6 小结 附录A 装配Spring A.1 下载Spring A.1.1 研究Spring发布 A...
8. **集成其他技术**:Spring支持与各种其他框架和技术的集成,如JSF、Struts、EJB、JMS、Quartz等,它提供了一种统一的方式来管理这些组件的依赖和生命周期。 9. **测试支持**:Spring提供了丰富的测试工具,包括...
在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect ...
本文将深入探讨Spring框架的核心特性和功能,以及在实际项目中的应用。 首先,Spring框架的核心特性之一是依赖注入(Dependency Injection,简称DI),也被称为Inversion of Control(IoC,控制反转)。在传统的...
6.1 在一般Web应用中访问Spring 209 6.1.1 问题 209 6.1.2 解决方案 210 6.1.3 工作原理 210 6.2 在你的Servlet和过滤器中使用Spring 214 6.2.1 问题 214 6.2.2 解决方案 215 6.2.3 工作原理 215 ...