Spring总结实例之消息与事件

作者:张维亮 发布于:2008年09月12日 08:13

前几天看到网友总结的自学经验,觉得说得很好,引文:光看别人骑自行车很容易, 那么是不是看了几百遍别人怎么骑自行车你也就马上能骑着走了呢? 不摔跤是不可能学会的。

还有就是要经常总结:刚才说到会摔跤, 那么这时候就要总结遇到的问题, 这样下次再遇到就不会再去回忆了. 好记性不如烂笔头. 注释, 如果今天不写, 那么以后只会越来越忙, 以后再也没时间写注释了. If you doesn’t have time to do it today, then when do you have time to do it tomorrow?

所以今天就写个Spring的消息和事件实例。

1、JavaBean:User.java

package cn.xy.hw;

/** *//**
* @author hanwei
*
*/
public class User ...{
private String name;
private int age;

public int getAge() ...{
return age;
}
public void setAge(int age) ...{
this.age = age;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
}

2、用于国际化的两个消息资源文件:xiyou_en_US.properties和xiyou_zh_CN.properties

userlogin user ...{0} login at ...{1}

userlogin 使用者 ...{0} 于 ...{1}登入

自定义下雨的事件:RainEvent.java

package cn.xy.hw;

import org.springframework.context.ApplicationEvent;

/** *//**
* @author hanwei
*
*/
public class RainEvent extends ApplicationEvent ...{

public RainEvent(Object arg0) ...{
super(arg0);
System.out.println("乌云密布、闪电、打雷,紧接着,下起了瓢泼大雨。");
}
}

下雨事件监听器:RainListener.java

package cn.xy.hw;

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

/** *//**
* @author hanwei
*
*/
public class RainListener implements ApplicationListener ...{

/**//* (non-Javadoc)
* @see org.springframework.context.ApplicationListener#onApplicationEvent(
org.springframework.context.ApplicationEvent)
*/
public void onApplicationEvent(ApplicationEvent arg0) ...{

if(arg0 instanceof RainEvent)...{
System.out.println("唐僧大喊:"+arg0.getSource()+"赶快收衣服喽!");
}
}
}

配置文件:applicationContext.xml

<!--sp-->xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans [url]http://www.springframework.org/schema/beans/spring-beans-2.0.xsd[/url]“>

<bean id=”user” class=”cn.xy.hw.User” abstract=”false”
lazy-init=”default” autowire=”default” dependency-check=”default”>
<property name=”name”>
<value>hanweivalue>
property>
<property name=”age”>
<value>20value>
property>
bean>

<bean id=”messageSource”
class=”org.springframework.context.support.ResourceBundleMessageSource”
abstract=”false” lazy-init=”default” autowire=”default”
dependency-check=”default”>
<property name=”basename” value=”xiyou”>property>
bean>

<bean id=”listener” class=”cn.xy.hw.RainListener” abstract=”false”
lazy-init=”default” autowire=”default” dependency-check=”default”>
bean>

beans>

测试类:MianTest.java

package cn.xy.hw;

import java.util.Calendar;
import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/** *//**
* @author hanwei
*
*/
public class MianTest ...{

public static void main(String[] args) …{
ApplicationContext context = new ClassPathXmlApplicationContext(”applicationContext.xml”);
User user = (User)context.getBean(”user”);

Object[] obj=new Object[]…{user.getName(),Calendar.getInstance().getTime()};
System.out.println(context.getMessage(”userlogin”,obj
,”找不到指定模块!”,Locale.CHINA));
System.out.println(context.getMessage(”userlogin”,obj
,”找不到指定模块!”,Locale.US));

context.publishEvent(new RainEvent(”下雨了!”));
}
}

OK了,这是运行测试类的结果:

使用者 hanwei 于 07-8-26 下午6:14登入
user hanwei login at 8/26/07 6:14 PM
乌云密布、闪电、打雷,紧接着,下起了瓢泼大雨。
唐僧大喊:下雨了!赶快收衣服喽!
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.

作者:张维亮
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/zhangweiliang/200809121.shtml

( 内容完 )

添加收藏到:

您可能还对这些文章感兴趣:

  • 关于我们
  • ikon999原创:JsUnit测试之三
  • Spring集成XFire开发WebService
  • asp中对ip进行过滤限制函数
  • TWaver做的项目-table篇
  • 浅谈验证码(一什么是验证码)
  • 每日构建 Daily build
  • C#创建系统日志
  • 你走你的阳光道,我走我的独木桥:整合ant ivy 和testng
  • 如何优化SQL Server数据库性能之SQL语句篇
  • 2条评论, 我来评论

    1. qbvv

      看看

    2. amsizhuang

      恩不错

    小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
    类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
    请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
    如果您发现自己的评论没有被审核或者不见了,请参考以上三条。

    每周之星

    陈臣陈臣

    七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。

    更多作者:

  • Adam
  • ikon999
  • jk1234
  • jk2345
  • libin_8745
  • lifengxing
  • taohuang100
  • xingkong
  • 北风
  • 呆子
  • 子晨
  • 小白
  • 张章
  • 张维亮
  • 陈臣
  • 陶宝哥
  • 风风
  • 最新内容

    推荐内容

    标签

    分类