JAVA中定时自动完成任务的实现

Python017

JAVA中定时自动完成任务的实现,第1张

JAVA中定时自动完成任务的实现要用到JAVA中的定时器TimerTask和监听器 听起来貌似有点困难但是实现起来还是比较容易的!纸老虎~~!

下面的列子很详细 是关于定时向服务器上传(也可以是其他的动作这是看需要关于上传我博客有写过可以参考)文件的列子简单的 步就可以实现

首先创建动作bean

package sun time

public class UploadFile{

/**

*实现上传的代码s省略  可以看下我下面的 篇日志

__haiming/blog/static/ / 使用 *** arupload 实现上传下载[有例子]

__haiming/blog/static/ / 使用Struts 多文件上传

*/

public void upload()

{

System out println( 系统自动的上传文件了 )

}

}

创建定时器MyTaker并完成相应的功能

package sun time

import java util Calendar

import java util TimerTask

import javax servlet ServletContext

public class MyTaker extends TimerTask {

private static boolean isRun = false

private   ServletContext context

private Calendar ca  = Calendar getInstance()

public MyTaker(ServletContext context)

{

ntext = context

}

@Override

public void run() {

if(!isRun){

if( ==ca get(Calendar MINUTE)){

isRun = true

context log( 正在执行所加载的任务 )

UploadFile uf= new UploadFile()

uf upload()

isRun =false

context log( 任务顺利完成 )

}

}

else

{

System out println( 任务还没有执行完毕 )

}

}

}

创建监听器ContextListener

package sun time

import javax servlet ServletContextEvent

import javax servlet ServletContextListener

import sun time MyTaker

import java util *

public class ContexListener  implements ServletContextListener{

private  Timer timer = null

@Override

public void contextDestroyed(ServletContextEvent event) {

timer cancel()

event getServletContext() log( 任务列表已经销毁了 )

}

@Override

public void contextInitialized(ServletContextEvent event) {

timer = new Timer(true)

event getServletContext() log( 服务器已经启动了 )

timer schedule(new  MyTaker(event getServletContext()) )///每隔多长时间检查扫描一次

event getServletContext() log( 已经加载了任务的列表 )

}

}

最后一步就是在web xml中配置监听

<! Java定时器 >

<listener>

<listener class>sun time ContexListener</listener class>

lishixinzhi/Article/program/Java/hx/201311/26450

Java 集合框架中的对象不会自动清理。它们的生命周期取决于它们的引用状态。当没有任何引用指向集合中的对象时,它们可以被 Java 垃圾回收机制回收,这样就可以自动清理。但如果还有引用指向集合中的对象,则不会被清理。

一个大型的java项目的开发往往需要加载很多的各式各样的第三方jar包依赖,这时就需要专门工具来维护这些繁杂的jar包,否则各个jar包的版本问题,依赖问题会让你头很大,当多个团队协作开发时,项目的标准框架配置也需要能够快速在不同团队之间复制,另外项目从创建、开发、测试、发布的整个项目生命周期也需要专门的工具来维护。

自动化构建工具就是为了解决以上这些问题的。

目前比较主流的自动化构建工具主要有:Maven、gradle、Ant等。

其中Ant已经走下坡路,除了维护以前的老项目以外,已经基本没有公司用了。

过去几年中Maven已经成为java项目的事实构建工具,没有之一。

而近两年Gradle获得越来越多的人使用,分走了不少Maven的用户。

在这我们主要了解一下Maven和gradle。

MavenMaven是一个采用纯Java编写的开源项目管理工具。

它包含了一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManagementSystem),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

Maven采用了一种被称之为projectobjectmodel(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个生命周期,包括编译,构建,测试,发布,报告等等。

gradleGradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化建构工具。

它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。

面向Java应用为主。

当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

和Maven一样,Gradle只是提供了构建项目的一个框架,真正起作用的是Plugin。

Gradle在默认情况下为我们提供了许多常用的Plugin,其中包括有构建Java项目的Plugin,还有War,Ear等。

陕西电脑培训http://www.kmbdqn.cn/发现与Maven不同的是,Gradle不提供内建的项目生命周期管理,只是javaPlugin向Project中添加了许多Task,这些Task依次执行,为我们营造了一种如同Maven般项目构建周期。