首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts PlugIn的运用

2012-08-24 
Struts PlugIn的使用Struts是一个非常优秀的MVC框架,虽然现在Struts1.x已经显得老了,但是,还是有很多企业

Struts PlugIn的使用
Struts是一个非常优秀的MVC框架,虽然现在Struts1.x已经显得老了,但是,还是有很多企业继续在使用 Struts1.x,Struts2.x估计还要再等一段时间后,才能成为主流。
      Struts1.x的Plugin功能做得非常好, 像我们一直在使用的Struts Validation,Struts Tiles都是基于插件方式对Struts进行扩展。之前在做OA系统的时候,就遇到这样一个比较麻烦的业务问题,用户需要我们能提供一个预警监控的功 能,当待办时间离结构还有半小时时候,系统会自动发送一条短信给待办人员。因为当时还没有应用到Spring,还没有应用到Opensymphony做定 时服务的组件Quarz,我们当时是用的是Timer来做定时服务。但问题是Timer应该在什么时候开始启动?后来就决定使用Struts Plugin来实现。
当我们觉得Struts功能不够用的时候,我们可以使用Struts的PlugIn框架进行扩展。具体的实现细节如下:
      第 一、开发一个发送邮件的Struts PlugIn



程序代码

package zizz.strutsplugin;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletException;import org.apache.struts.action.ActionServlet;import org.apache.struts.action.PlugIn;import org.apache.struts.config.ModuleConfig;/*** 专门用来发送邮件的插件* @author zizz at manbuchina**/public class EmailPlugin implements PlugIn{        /**     * Struts初始化的同时,会自动初始化插件.     */    public void init(ActionServlet actionServlet, ModuleConfig config) throws ServletException {                Timer timer = new Timer();        //每三秒钟触发一次,调用EmailSenderTrigger的run方法.        timer.schedule(new EmailSenderTrigger(), 0,3000);    }            /**     * 上下文被Destroy的时候,会调用该方法,释放相应的资源.     */    public void destroy() {            }}


/*** 邮件发送的定时任务* @author zizz at manbuchina**/class EmailSenderTrigger extends TimerTask{        /**     * TimerTask需要执行的内容     */    public void run() {        checkNewEmail();        sendEmail();    }        public void checkNewEmail(){        System.out.println("检查新的未发送 邮件");    }        public void sendEmail(){        System.out.println("发送未发送邮件");    }    }



      第二步,配置Struts PlugIn
程序代码

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>  <data-sources />  <form-beans />  <global-exceptions />  <global-forwards />  <action-mappings />  <message-resources parameter="zizz.strutsplugin.ApplicationResources" />  <!-- 配置自定义的PlugIn -->  <plug-in className="zizz.strutsplugin.EmailPlugin">  </plug-in></struts-config>




      第 三步,发布应用程序,查看系统运行结果


程序代码



检查新的未发送邮件
发送未发送 邮件
检查新的未发送邮件
发送未发送邮件



      系统每隔三秒钟,便会检查一 下邮件及发送待发邮件


转自 :   http://www.suneca.com[size=medium][/size]

热点排行