`
yzz9i
  • 浏览: 221536 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Java 中实现定时服务 在ssh框架中跟普通工程里面创建的方式,区别

阅读更多
闲话不多说 直接看下面代码

引用

网上这么说的:

1、 Spring中使用TimerTask定制任务
(1)、TimerTask实现了Runnable接口,待执行的任务置于run()中。Timer是一个安排TimerTask的类 此两者一般一起工作。应用时首先创建一个TimerTask的对象,然后用一个Timer的类的schedule方法安排执行它。
(2)、Spring提供了ScheduledTimerTask,就是通常所说的任务,把配置好的任务(ScheduledTimerTask)注册到调度器TimerFactoryBean中就可以了。实际上ScheduledTimerTask是对JDK中的TimerTask进行了封装,TimerFactoryBean是对JDK中的Timer进行了封装。
(3)开发使用中Spring配置文件的说明
1、编写NewTimeTask.java,此类需extends TimerTask类,在run方法中编写要执行的操作
2、Spring配置文件
<beans>
<!-- 自己编写的任务类 -->
<bean id="newTask" class="com.huawei.esop.task.NewTimeTask"></bean>

<bean id="newsScheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!-- 系统启动后60秒开始执行 单位毫秒-->
<property name="delay" value="60000"></property>
<!-- 每60秒执行一次 -->
<property name="period" value="60000"></property>
<!-- 执行的任务 -->
<property name="timerTask" ref="newTask"></property>
</bean>
<!-- 注册调度器 -->
<bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="newsScheduledTask" />
</list>
</property>
</bean>

</beans>



上面这段说发 这就类似我下面的这个创建方式

一 创建timerManager 管理类。
import java.util.Timer;  
  
import javax.servlet.ServletContextEvent;  
import javax.servlet.ServletContextListener;  
  
import org.apache.commons.lang.time.DateUtils;  
public class timerManager implements ServletContextListener {  
  
    //每天的毫秒数  
    public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;  
    //一周的毫秒数  
    public static final long PERIOD_WEEK = PERIOD_DAY * 7;  
    //无延迟  
    public static final long NO_DELAY = 0;  
    //定时器  
    private Timer timer;  
      
    /** 
     * 在Web应用结束时停止任务 
     */  
    public void contextDestroyed(ServletContextEvent sce) {  
        timer.cancel();//定时器销毁  
  
    }  
  
    /** 
     * 在Web应用启动时初始化任务 
     */  
    public void contextInitialized(ServletContextEvent sce) {  
        //定义定时器  
        timer = new Timer(true);  
        //timer.schedule(new LocationTask(), NO_DELAY, PERIOD_WEEK * 4);  
     //   timer.schedule(new figureTermCount(), NO_DELAY, 30000);  
  
    }  
  
} 


   二 创建本地要执行的任务类方法
import java.util.TimerTask;

public class LocationTask  extends TimerTask
{  
	  
    private static boolean isRunning = false;  
    @Override  
    public void run() {  
        if(!isRunning) {  
            isRunning = true;  
         //------要执行的程序块--------
            isRunning = false;  
        } else {  
         //------要执行的程序块--------
        }  
  
    }  
  
} 


   三 在web.xml中配置监听器
 <listener>
  	<listener-class>com.sxy.sms.util.timerManager</listener-class>
  </listener>




第一种方式到这里算结束了 。下面看第二种



引用

网上的第二中说发。

1、 既然我们使用了Spring,所以不一定要extends TimerTask类来定义一个Task,Spring也可以使用MethodInvokingTimerTaskFactoryBean类直接指定执行某个对象的方法.
2、 MyTask.java  此类无需extends TimerTask类
   public class MyTask
{
    public void execute()
    {
        System.out.println("开始我的任务");
        //编写逻辑代码
    }
}
applicationcontext.xml
<bean id="myTask" class="com.huawei.esop.MyTask" />
<!-- 定义任务对象和方法 -->
<bean id="timerTaksBean"
class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
<property name="targetObject" ref="myTask"></property>
<property name="targetMethod" value="execute"></property>
</bean>
<!-- 任务的执行 -->
<bean id="scheduledTimerTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="timerTaksBean"></property>
<property name="period" value="1000"></property>
<property name="delay" value="1000"></property>
</bean>
<!-- 注册任务 -->
<bean id="timerFactoryBean"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTimerTask" />
</list>
</property>
</bean>





我下面同样给出例子。

applicationContext.xml  beans中添加如下代码 class 做相应配置

	<bean id="myTask" class="com.sxy.sms.task.figureTermCount" />
	<!-- 定义任务对象和方法 -->
	<bean id="timerTaksBean"
		class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean">
		<property name="targetObject" ref="myTask"></property>
		<property name="targetMethod" value="execute"></property>
	</bean>
	<!-- 任务的执行 -->
	<bean id="scheduledTimerTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
		<property name="timerTask" ref="timerTaksBean"></property>
		<property name="period" value="1000"></property>
		<property name="delay" value="1000"></property>
	</bean>
	<!-- 注册任务 -->
	<bean id="timerFactoryBean" class="org.springframework.scheduling.timer.TimerFactoryBean">
		<property name="scheduledTimerTasks">
			<list>
				<ref bean="scheduledTimerTask" />
			</list>
		</property>
	</bean>


二 要执行的定时方法类 不要继承(extends) TimerTask 类 这也是跟第一种方式不同之处                
    public class figureTermCount {
	  public void execute()
	    {
	        System.out.println("开始我的任务");
	        //编写逻辑代码
	    } 
	
}


三 把你在web.xml中的定时服务类的监听器配置注释或删掉


个人觉得第二种更方便更好看看看看些




分享到:
评论

相关推荐

    Java SSH 框架整合,学习源码

    在SSH整合中,Spring主要作为应用的核心,负责管理其他组件,如Struts和Hibernate,通过Bean工厂和ApplicationContext实现对象的创建和管理。 2. **Struts框架**:Struts是基于MVC(Model-View-Controller)设计...

    Java三大框架SSH框架

    Java SSH 框架是Java开发企业级应用的三大核心框架,它们分别是Spring、Struts 和 Hibernate。这个框架组合提供了一种高效且灵活的方式来构建Web应用程序,尤其在处理增删改查(CRUD)操作、分页、上传下载等功能时...

    java做后台接口(基于ssh框架)封装版本测试通过

    - 各个接口的Java源代码,展示了如何在SSH框架下实现业务逻辑。 - 配置文件,包括Spring的bean配置、Struts的action配置以及Hibernate的数据源配置。 - 数据库模型类,对应数据库表结构的实体类。 - 测试用例,可能...

    javaSSH框架javaSSH框架 整合

    JavaSSH框架,通常指的是在Java开发中用于构建服务器端应用的一种技术栈,它结合了Struts、Spring和Hibernate这三个主流的开源框架。Struts提供了MVC(Model-View-Controller)设计模式,Spring则是一个全面的后端...

    java ssh框架的加法计算器

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目是一个基于SSH框架实现的简单加法计算器,对于初学者来说,它是理解SSH框架工作原理和结构的一个良好起点。 ...

    ssh框架开发短信平台

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一套集成框架。这个框架集合了MVC(Model-View-Controller)设计模式的Struts2,依赖注入和面向切面编程的Spring,以及持久层管理的...

    Java中的ssh框架小例子

    Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh框架小例子Java中的ssh...

    SSH框架搭建源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个...

    Java基于jsp的校园通讯录的实现ssh框架.zip

    Java基于jsp的校园通讯录的实现ssh框架.zipJava基于jsp的校园通讯录的实现ssh框架.zipJava基于jsp的校园通讯录的实现ssh框架.zipJava基于jsp的校园通讯录的实现ssh框架.zipJava基于jsp的校园通讯录的实现ssh框架.zip...

    用java中的ssh三大框架做的一个入门的例子

    SSH是Java开发中常用的三大框架,分别是Struts、Spring和Hibernate。这个例子旨在为初学者提供一个基于SSH的简单应用示例,帮助他们理解和掌握这三个框架的集成与使用。 Struts是MVC(Model-View-Controller)设计...

    商贸项目SSH框架实现代码

    SSH框架是Java Web开发中的一个经典组合,由Spring、Struts和Hibernate三个开源框架集成,常用于构建企业级应用。这个“商贸项目SSH框架实现代码”提供了完整的源码,对于学习和理解SSH框架的工作原理及实际应用具有...

    Javassh框架

    在Java中,常见的SSH库有JSch和Apache MINA等。 SSH协议分为两个主要部分:SSH连接协议和SSH传输协议。SSH连接协议用于建立安全通道,而SSH传输协议则在此通道上提供加密的数据传输服务。JavaSSH框架通过这些协议,...

    SSH框架实现的学生管理系统

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一套集成框架。这个框架集合了Struts2的MVC设计模式、Spring的依赖注入(DI)和面向切面编程(AOP)以及Hibernate的对象关系映射(ORM),...

    基于Java编程语言实现Webssh框架源码+项目说明.zip

    本项目的Blog:使用纯Java实现一个WebSSH项目 注意: 由于前端代码中没有指定终端的信息 所以需要各位自己输入这些信息,位置在webssh.html中 openTerminal( { /*operate:'connect', host: '',//IP port: '',...

    SSH框架整合项目源码

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目源码提供了SSH整合的实践案例,特别适合初学者学习和理解Web应用的开发流程。 Struts2作为MVC(Model-View-...

    SSH框架搭建步骤

    SSH框架,全称为Spring、Struts和Hibernate的首字母缩写,是Java开发中的一个经典组合,用于构建企业级Web应用程序。Spring提供了依赖注入(DI)和面向切面编程(AOP),Struts则处理MVC(模型-视图-控制器)架构,...

    java框架ssh框架项目案例

    这个“java框架ssh框架项目案例”提供了一个完整的示例,帮助开发者了解如何在实际项目中集成和应用这些框架。 1. **Struts2**:作为MVC(模型-视图-控制器)设计模式的实现,Struts2负责处理HTTP请求并分发到相应...

    Java基于jsp的网络聊天室的实现ssh框架.zip

    Java基于jsp的网络聊天室的实现ssh框架.zipJava基于jsp的网络聊天室的实现ssh框架.zipJava基于jsp的网络聊天室的实现ssh框架.zipJava基于jsp的网络聊天室的实现ssh框架.zipJava基于jsp的网络聊天室的实现ssh框架.zip...

    Java框架SSH实例小型企业网站

    【SSH框架整合实例】是Java开发中的一个重要主题,它涵盖了Spring、Struts和Hibernate三个主流的开源框架。这个实例是一个小型企业网站的实现,虽然功能有限,但足够用于初学者学习和理解这些框架的集成与应用。 ...

    java ssh框架权限管理系统

    SSH框架是Java Web开发中常见的“三位一体”框架,它们分别是Struts负责视图层,Spring处理业务逻辑和服务层,而Hibernate则专注于持久化层,三者协同工作,提供了一个高效、灵活的开发环境。 Struts作为MVC(模型-...

Global site tag (gtag.js) - Google Analytics