- 浏览: 1574342 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz
//在java使用quartz
//在spring中使用quartz
//使用MethodInvokingJobDetailFactoryBean 可以装配任何普通的bean中方法 不用继承
//使用JobDetailBean装配 业务
首先说 jar的问题 从Spring3.2.4才开始支持quartz-2.x 如果版本低于 3.2.4 需要导入 quartz-1.x,commons-collections-3.1.jar,jboss-transaction-api_1.1_spec-1.0.0.Final.jar(javax.transaction.UserTransaction.class)
//在java使用quartz
package quartz; import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; /** * 定义quartz作业类 * 单独 使用quartz * */ public class BuzJob implements Job { private boolean isRunning=false; @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub if(!isRunning){ System.out.println(new Date()+" 作业被调度."); for (int s = 0; s < 100; s++) { System.out.println("作业完成"+(s+1)+"%"); try { Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } System.out.println(new Date()+" 作业调度结束."); }else{ System.out.println(new Date()+" 任务退出"); } } } //test package quartz; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.impl.StdSchedulerFactory; /** * 使用quartz的调度器 * @author Bin * */ public class MyQuartzService { public static void main(String[] args) { // TODO Auto-generated method stub try { startScheduler(); } catch (SchedulerException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void startScheduler() throws SchedulerException{ Scheduler sch=StdSchedulerFactory.getDefaultScheduler(); JobDetail d=new JobDetail("buz", Scheduler.DEFAULT_GROUP, BuzJob.class); //重复调度2次,间隔 60s Trigger t=new SimpleTrigger("buz", Scheduler.DEFAULT_GROUP, 2, 60000); sch.scheduleJob(d, t); sch.start(); } }
//在spring中使用quartz
//使用MethodInvokingJobDetailFactoryBean 可以装配任何普通的bean中方法 不用继承
package quartz; public class QuartzJob { public void work(){ System.out.println("Quartz调度"); } }
<!-- step:1 定义 quartz业务类--> <!--定义一个 工作业务类,要做的事情--> <bean id="quartzjob" class="quartz.QuartzJob"/> <!-- step:2 对业务类进行详情描述--> <!--采用 MethodInvokingJobDetailFactoryBean 装配 任务详情 --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="quartzjob"/> <property name="targetMethod" value="work"/> <property name="concurrent" value="false" /> <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 --> </bean> <!-- 装配触发器 --> <bean id="dotime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobtask"/> <property name="cronExpression" value="0 * 20 * * ?"/> </bean> <!-- 配置一个线程执行器,用于任务注册 --> <bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10"/> <property name="maxPoolSize" value="100"/> <property name="queueCapacity" value="500"/> </bean> <!-- step:4 将触发器 交给调度工厂 --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTriggerPunch"/> <ref local="dotime"/> <ref local="cronTriggerPunch1"/> </list> </property> <property name="taskExecutor" ref="executor"/> <property name="autoStartup" value="true"/> <property name="startupDelay" value="60"/> </bean>
//使用JobDetailBean装配 业务
package quartz; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; import annotation.model.interfaces.Dog; public class PunchJob extends QuartzJobBean { private boolean isRunning=false; private Dog dog; public void setDog(Dog dog) { this.dog = dog; } @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { // TODO Auto-generated method stub if(!isRunning){ System.out.println("开始工作"); dog.sound(); isRunning=false; } } }
<!--step:3 对已经详情描述过的bean,装配给 触发器 --> <bean id="cronTriggerPunch" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 采用嵌套类 bean--> <property name="jobDetail"> <!--使用JobDetailBean 装配任务详情 --> <bean class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="quartz.PunchJob"/> <property name="jobDataAsMap"> <map> <entry key="dog" value-ref="bagong"/> </map> </property> </bean> </property> <property name="cronExpression" value="0 0/1 * * * ?"/> </bean> <!-- PunchJob1:m没有采用 嵌套bean --> <bean id="punchjobDetail" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="quartz.PunchJob1"/> <property name="jobDataAsMap"> <map> <entry key="dog" value-ref="rifle"/> </map> </property> </bean> <bean id="cronTriggerPunch1" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="punchjobDetail"/> <property name="cronExpression" value="0 0/1 * * * ?"/> </bean> <!-- step:4 将触发器 交给调度工厂 --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTriggerPunch"/> <ref local="dotime"/> <ref local="cronTriggerPunch1"/> </list> </property> <property name="taskExecutor" ref="executor"/> <property name="autoStartup" value="true"/> <property name="startupDelay" value="60"/> </bean>
发表评论
-
spring-session 中的坑
2017-07-06 15:34 9945spring-session 配置 依赖 gradle ... -
Spring AspectJ Aop Annotation
2017-03-29 17:08 670import org.aspectj.lang.Proce ... -
spring 第13天 使用@scheduled注解执行定时任务
2015-01-06 23:11 54025我们使用spring的注解 @Scheduled 执行定时任务 ... -
Spring 第12天,事务传播属性和 隔离级别
2014-09-28 00:36 7761 事务的传播属性(Propagation) 1) REQ ... -
spring 第10 天 AOP 面向切面
2014-08-21 00:08 1720AOP(Aspect Orient Programming ... -
spring 第9天 Resurce 资源访问
2014-08-17 22:20 1828Spring Resource接口 spring提供的Reso ... -
spring 第8天 Spring 注解
2014-08-17 15:33 1438spring注解 @Component:标注一个普通的sp ... -
spring 第7天 Bean,BeanFactory处理器,配置器
2014-08-16 21:46 1191spring 两种后处理器 第一种,Bean 后处理器 对容器 ... -
spring 第6天SpEL,P命名空间,Util Schema
2014-08-13 22:52 1269使用p名称空间配置属性 ... -
spring 第5天不同作用域的bean,注入Field,方法返回值
2014-08-11 22:31 2068协调作用域不同步的bean 问题是;当一个singleton的 ... -
spring 第4天bean继承,init,destory-method
2014-08-10 17:54 1601深入理解Spring容器中的b ... -
spring 第3天使用java类和XML配置bean
2014-08-09 16:51 1465下面采用java类来配置bean,前面都采用xml进行配置be ... -
spring 第2天,bean作用域,自动注入集合
2014-08-06 22:16 1887sping容器中的Bean <!---beans的全 ... -
spring 第1天 IOC,DI,国际化,容器事件
2014-08-04 21:27 13621.构造注入(就是使用 构 ... -
SpringMVC 注解 和非注解
2014-01-26 10:29 17979首先看看非注解的项目结构 在web.xml文件 配置spr ... -
详解spring 每个jar的作用
2013-11-19 23:54 3873spring.jar 是包含有完整 ... -
Spring配置Hibernate事务
2013-11-10 13:45 1183为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事 ... -
Spring 中引用Properties文件
2013-08-29 14:39 10614其中部分配置信息(邮件发送相关): #邮件发送的相关配置 ... -
Spring IOC控制反转 依赖注入DI
2012-12-15 09:37 2298目录 1.使用IOC控制反转 中的DI依赖注入 手工注入 ... -
Spring IOC控制反转 依赖注入DI
2012-12-14 16:23 8目录 1.使用IOC控制反转 中的DI依赖注入 (两种配置方式 ...
相关推荐
第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。 第14章:介绍Spring 3.0新增的OXM模块,同时对XML技术进行了整体的了解。 第15章:对...
第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...
第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及了使用JDK Timer和JDK 5.0执行器的知识。 第14章:介绍Spring 3.0新增的OXM模块,同时对XML技术进行了整体的了解。 第15章:...
第11章 保护Spring 应用程序 11.1 Acegi安全系统介绍 11.1.1 安全拦截器 11.1.2 认证管理器 11.1.3 访问决策管理器 11.1.4 运行身份管理器 11.2 管理身份验证 11.2.1 配置...
第11章spring和ejb 11.1在spring中置入ejb 11.1.1代理会话bean(ejb2.x) 11.1.2将ejb置入springbean 11.2开发spring驱动的ejb(ejb2.x) 11.3spring和ejb3 11.3.1引入pitchfork 11.3.2从pitchfork起步 11.3.3...
第11章 Grails 441 11.1 获取和安装Grails 441 11.1.1 问题 441 11.1.2 解决方案 442 11.1.3 工作原理 442 11.2 创建Grails应用 443 11.2.1 问题 443 11.2.2 解决方案 443 11.2.3 工作原理 443 ...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程...
第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean(EJB 2.x) 11.1.2 将EJB置入Spring Bean 11.2 开发Spring驱动的EJB(EJB 2.x) 11.3 Spring和EJB3 11.3.1 引入Pitchfork 11.3.2 从Pitchfork...
第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean(EJB 2.x) 11.1.2 将EJB置入Spring Bean 11.2 开发Spring驱动的EJB(EJB 2.x) 11.3 Spring和EJB3 11.3.1 引入Pitchfork 11.3.2 从Pitchfork...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 9.5.7. 插入事务操作 9.5.8. 结合AspectJ...
第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...
第11章 Grails 441 11.1 获取和安装Grails 441 11.1.1 问题 441 11.1.2 解决方案 442 11.1.3 工作原理 442 11.2 创建Grails应用 443 11.2.1 问题 443 11.2.2 解决方案 443 11.2.3 工作原理 443 ...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...
技术选型:核心框架:Sring boot + Spring Framework + Dubbo + ibase4j-common安全框架:Apache Shiro任务调度:Spring + Quartz持久层框架:MyBatis + MyBatis-Plus数据库连接池:Alibaba Druid缓存框架:Redis...
第11章 与java集成 11.1 服务器端java集成 11.2 通过集成hibernate实现orm 11.2.1 使用hibernatecxml映射 11.2.2 ejb3方式的映射 11.2.3 在pojo实体中使用约束 11.2.4 得到...