Spring总结实例之消息与事件

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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

还有就是要经常总结:刚才说到会摔跤, 那么这时候就要总结碰到的问题, 这样下次再碰到就不会再去回忆了. 好记性不如烂笔头. 注释, 假如今天不写, 那么以后只会越来越忙, 以后再也没时间写注释了. 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 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航