奥运倒计时: 2008 中国挺住,中国加油! 全国人民对四川汶川大地震遇难同胞的深切哀悼! 设为首页 加入收藏
点击进入太平洋安全网首页
论坛登陆 用户名: 密码:
首页 新闻资讯 文章中心 黑客资源 黑客点睛 安全防护 软件下载 动画教程 会员咨询 技术问答 论坛社区
文章 下载 图片
文章   | 电脑知识 | 网络知识 | 菜鸟入门 | 入侵教程 | 黑客攻防 | 黑客编程 | 原创精华 | 黑客人物 | 黑客技术 | 提权技术 | 跨站技术 | 渗透技术 | 鸽子专题 |
 您现在的位置: 太平洋安全网 >> 文章 >> 黑客编程 >> 正文

Spring中事件处理技巧

作者:未知    文章来源:网络转载    点击数:    更新时间:2008-4-13
Spring中提供一些Aware相关的接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到的是ApplicationContextAware。实现ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实
  Spring事件处理一般过程:

  ·定义Event类,继承org.springframework.context.ApplicationEvent.

  ·编写发布事件类Publisher,实现org.springframework.context.ApplicationContextAware接口.

  ·覆盖方法setApplicationContext(ApplicationContext applicationContext)和发布方法publish(Object obj)

  ·定义时间监听类EventListener,实现ApplicationListener接口,实现方法onApplicationEvent(ApplicationEvent event).

  java 代码

import org.springframework.context.ApplicationEvent;  

/**  
* 定义事件信息  
* @author new  
*  
*/  
public class MessageEvent extends ApplicationEvent {  

 private String message;  

 public void setMessage(String message){  
  this.message = message;  
 }  

 public String getMessage(){  
  return message;  
 }  

 public MessageEvent(Object source, String message) {  
  super(source);  
  this.message = message;  
  // TODO Auto-generated constructor stub  
 }  

 private static final long serialVersionUID = 1L;  
}  

  java 代码

import org.springframework.beans.BeansException;  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.ApplicationContextAware;  
import org.springframework.context.support.FileSystemXmlApplicationContext;  

public class Publisher implements ApplicationContextAware {  

 private ApplicationContext context;  

 @Override  
 public void setApplicationContext(ApplicationContext arg0)  
 throws BeansException {  
  // TODO Auto-generated method stub  
  this.context = arg0;  
 }  

 public void publish(String message){  
  context.publishEvent(new MessageEvent(this,message));  
 }  

 public static void main(String[] args) {  
  ApplicationContext ctx = new FileSystemXmlApplicationContext("src/applicationContext.xml");  
  Publisher pub = (Publisher) ctx.getBean("publisher");  
  pub.publish("Hello World!");  
  pub.publish("The quick brown fox jumped over the lazy dog");  
 }  
}  

  java 代码

import org.springframework.context.ApplicationEvent;  
import org.springframework.context.ApplicationListener;  

public class MessageEventListener implements ApplicationListener {  

 @Override  
 public void onApplicationEvent(ApplicationEvent event) {  
  // TODO Auto-generated method stub  
  if(event instanceof MessageEvent){  
   MessageEvent msEvent = (MessageEvent)event;  
   System.out.println("Received: " + msEvent.getMessage());  
  }  
 }  
}  

  在运行期,ApplicationContext会自动在当前的所有Bean中寻找ApplicationListener接口的实现,并将其作为事件接收对象。当Application.publishEvent方法调用时,所有的ApplicationListener接口实现都会被激发,每个ApplicationListener可根据事件的类型判断是否是自己需要处理的事件,如上面的ActionListener只处理ActionEvent事件。

文章录入:随风追忆    责任编辑:随风追忆 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     推荐文章
    推荐文章一句话木马用Upfile.vbs脚本
    推荐文章软件破解教程-第6章第3节 加密算法5
    推荐文章软件破解教程-第6章第3节 加密算法4
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章软件破解教程-常用Win32 API函数简介
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
     热门文章
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
    推荐文章详解Visual C#数据库编程
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章网站防止注入入侵的一些有效代码和方法
     本站推荐

    关于我们 | 联系方法 | 招聘信息 | 加入会员 | 诚征代理 | 广告服务 | 欢迎投稿 | 站长信箱 | 友情链接 | 网站地图
    24小时客服:0374-7126138 技术支持:0374-7126138 投诉电话:0374-7967536
    客服QQ:883039 售后QQ:827520 技术QQ:78305152 投稿-商业:576880739
    Copyright 太平洋科技 2003-2007 版权所有 All Rights Reserved
    许可证号:豫ICP备07005385号