1. 由于这回需要使用Spring的jar包,所以需要修改pom文件,添加如下依赖:
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>
注:如果使用3.0版本就不是只改个版本号的问题了,因为spring3.0已经分包了。
2. 编写Timer类代码:
package com.helloworld.common;
public class SayHelloTask{
public void sayHello() {
System.out.println("HelloWorld");
}
}
注意:此domain类完全没有依赖任何接口!!!
3. 编写spring配置文件:这个代码比较多就不全贴上去了
<bean id="sayHelloTask" class="com.helloworld.common.SayHelloTask" />
首先是上面那个bean的声明。
<bean id="schedulerTask" class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
<property name="targetObject" ref="sayHelloTask" />
<property name="targetMethod" value="sayHello" />
</bean>
MethodInvokingTimerTaskFactoryBean 取代了JDK中的TimerTask
<bean id="timerTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="schedulerTask" />
<property name="delay" value="2000" />
<property name="period" value="6000" />
</bean>
这个取代了JDK中的Timer
<bean class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="timerTask" />
</list>
</property>
</bean>
定义一个TimerFactoryBean来启动Task。
4. 编写测试代码:
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Scheduler.xml");
}
}
OK 一切运行成功。
分享到:
相关推荐
使用BeanPostProcessor的Hello World示例 3.7.1.2. RequiredAnnotationBeanPostProcessor示例 3.7.2. 用BeanFactoryPostProcessor定制配置元数据 3.7.2.1. PropertyPlaceholderConfigurer示例 3.7.2.2. ...
System.out.println("Hello, world!"); } }, 1000, 2000); // 第一个参数为延迟时间(毫秒),第二个参数为周期执行间隔时间(毫秒) ``` 这种实现方式虽然简单易用,但对于更复杂的需求支持有限,比如对定时任务...
16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体功能结构 17.1.2 论坛用例描述 17.1.3 主要功能流程描述 17.2 系统设计 17.2.1 技术...
16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体功能结构 17.1.2 论坛用例描述 17.1.3 主要功能流程描述 17.2 系统设计 17.2.1 技术...
System.out.println("Hello World!"); // 这里做你想干的事,这个方法会在服务器启动后按照你设定的时间周期调用 } } ``` ##### 2. 配置定时任务触发器 接下来需要配置定时任务触发器`repeatingTrigger`,该...
kbuilder.add(ResourceFactory.newClassPathResource("HelloWorld.drl"), ResourceType.DRL); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder....
HelloWorld.jsp LangSelector.js 转换器: ConvertHWorld.java LocaleConverter.java xwork-conversion.properties struts.xml ConverHWorld.jsp Product.java ProductConfirm.java AddProducts.jsp ShowProducts....
Observable.timer(3, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(new DisposableObserver() { @Override public void onNext(Long aLong) ...
map.put("hello", "world"); JobDetail jobDetail = newJob(QuartzJob.class) .withIdentity("myJob", "myGroup") .setJobData(map) .build(); /* * 简单定时器 * * 执行时间间隔 * ...
2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...
**8.2 国际化HelloWorld** 通过资源文件实现简单的国际化消息展示。 **示例代码**: ```java public String execute() { String message = getText("welcome.message"); return SUCCESS; } ``` **8.3 资源文件...
41 2.9.5 导入和使用范例 41 2.10 例程:jBPM HelloWorld 43 2.11 小结 45 第3章 使用jBPM图形化流程设计器(GPD)设计流程 46 3.1 创建一个新流程 47 3.2 编辑流程定义源 49 3.3 例程:设计一个“复杂的”业务流程 ...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...