Spring小结实例之消息 事件

Spring总结实例之消息 事件

    今天看了美河夜色狼族的一集Spring视频,是关于Bean的高级部分:消息和事件。以前看书或看视频,只是看了却没有动手编代码,看后就忘了。

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

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

Spring小结实例之消息 事件package cn.xy.hw;
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件
/** *//**
Spring小结实例之消息 事件 * 
@author hanwei
Spring小结实例之消息 事件 *
Spring小结实例之消息 事件 
*/

Spring小结实例之消息 事件Spring小结实例之消息 事件
public class User ...{
Spring小结实例之消息 事件
Spring小结实例之消息 事件    
private String name;
Spring小结实例之消息 事件    
private int age;
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件    
public int getAge() ...{
Spring小结实例之消息 事件        
return age;
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件Spring小结实例之消息 事件    
public void setAge(int age) ...{
Spring小结实例之消息 事件        
this.age = age;
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件Spring小结实例之消息 事件    
public String getName() ...{
Spring小结实例之消息 事件        
return name;
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件Spring小结实例之消息 事件    
public void setName(String name) ...{
Spring小结实例之消息 事件        
this.name = name;
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件}

Spring小结实例之消息 事件

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

Spring小结实例之消息 事件Spring小结实例之消息 事件userlogin user ...{0} login at ...{1}

Spring小结实例之消息 事件Spring小结实例之消息 事件userlogin 使用者 ...{0} 于 ...{1}登入

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

Spring小结实例之消息 事件package cn.xy.hw;
Spring小结实例之消息 事件
Spring小结实例之消息 事件
import org.springframework.context.ApplicationEvent;
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件
/** *//**
Spring小结实例之消息 事件 * 
@author hanwei
Spring小结实例之消息 事件 *
Spring小结实例之消息 事件 
*/

Spring小结实例之消息 事件Spring小结实例之消息 事件
public class RainEvent extends ApplicationEvent ...{
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件    
public RainEvent(Object arg0) ...{
Spring小结实例之消息 事件        
super(arg0);
Spring小结实例之消息 事件        System.out.println(
"乌云密布、闪电、打雷,紧接着,下起了瓢泼大雨。");
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件}

Spring小结实例之消息 事件

下雨事件监听器:RainListener.java

Spring小结实例之消息 事件package cn.xy.hw;
Spring小结实例之消息 事件
Spring小结实例之消息 事件
import org.springframework.context.ApplicationEvent;
Spring小结实例之消息 事件
import org.springframework.context.ApplicationListener;
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件
/** *//**
Spring小结实例之消息 事件 * 
@author hanwei
Spring小结实例之消息 事件 *
Spring小结实例之消息 事件 
*/

Spring小结实例之消息 事件Spring小结实例之消息 事件
public class RainListener implements ApplicationListener ...{
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件    
/**//* (non-Javadoc)
Spring小结实例之消息 事件     * @see org.springframework.context.ApplicationListener#onApplicationEvent(org.springframework.context.ApplicationEvent)
Spring小结实例之消息 事件     
*/

Spring小结实例之消息 事件Spring小结实例之消息 事件    
public void onApplicationEvent(ApplicationEvent arg0) ...{
Spring小结实例之消息 事件        
Spring小结实例之消息 事件Spring小结实例之消息 事件        
if(arg0 instanceof RainEvent)...{
Spring小结实例之消息 事件            System.out.println(
"唐僧大喊:"+arg0.getSource()+"赶快收衣服喽!");
Spring小结实例之消息 事件        }

Spring小结实例之消息 事件
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件
Spring小结实例之消息 事件}

Spring小结实例之消息 事件

配置文件:applicationContext.xml

Spring小结实例之消息 事件<!---->xml version="1.0" encoding="UTF-8"?>
Spring小结实例之消息 事件
<beans xmlns="http://www.springframework.org/schema/beans"
Spring小结实例之消息 事件    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
Spring小结实例之消息 事件    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
Spring小结实例之消息 事件
Spring小结实例之消息 事件    
<bean id="user" class="cn.xy.hw.User" abstract="false"
Spring小结实例之消息 事件        lazy
-init="default" autowire="default" dependency-check="default">
Spring小结实例之消息 事件        
<property name="name">
Spring小结实例之消息 事件            
<value>hanweivalue>
Spring小结实例之消息 事件        
property>
Spring小结实例之消息 事件        
<property name="age">
Spring小结实例之消息 事件            
<value>20value>
Spring小结实例之消息 事件        
property>
Spring小结实例之消息 事件    
bean>
Spring小结实例之消息 事件
Spring小结实例之消息 事件    
<bean id="messageSource"
Spring小结实例之消息 事件        
class="org.springframework.context.support.ResourceBundleMessageSource"
Spring小结实例之消息 事件        
abstract="false" lazy-init="default" autowire="default"
Spring小结实例之消息 事件        dependency
-check="default">
Spring小结实例之消息 事件        
<property name="basename" value="xiyou">property>
Spring小结实例之消息 事件    
bean>
Spring小结实例之消息 事件
Spring小结实例之消息 事件    
<bean id="listener" class="cn.xy.hw.RainListener" abstract="false"
Spring小结实例之消息 事件        lazy
-init="default" autowire="default" dependency-check="default">
Spring小结实例之消息 事件    
bean>
Spring小结实例之消息 事件
Spring小结实例之消息 事件
beans>

测试类:MianTest.java

Spring小结实例之消息 事件package cn.xy.hw;
Spring小结实例之消息 事件
Spring小结实例之消息 事件
import java.util.Calendar;
Spring小结实例之消息 事件
import java.util.Locale;
Spring小结实例之消息 事件
Spring小结实例之消息 事件
import org.springframework.context.ApplicationContext;
Spring小结实例之消息 事件
import org.springframework.context.support.ClassPathXmlApplicationContext;
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件
/** *//**
Spring小结实例之消息 事件 * 
@author hanwei
Spring小结实例之消息 事件 *
Spring小结实例之消息 事件 
*/

Spring小结实例之消息 事件Spring小结实例之消息 事件
public class MianTest ...{
Spring小结实例之消息 事件
Spring小结实例之消息 事件Spring小结实例之消息 事件    
public static void main(String[] args) ...{
Spring小结实例之消息 事件        
Spring小结实例之消息 事件        ApplicationContext context 
= new ClassPathXmlApplicationContext("applicationContext.xml");
Spring小结实例之消息 事件        User user 
= (User)context.getBean("user");
Spring小结实例之消息 事件        
Spring小结实例之消息 事件Spring小结实例之消息 事件        Object[] obj
=new Object[]...{user.getName(),Calendar.getInstance().getTime()};
Spring小结实例之消息 事件        System.out.println(context.getMessage(
"userlogin",obj
Spring小结实例之消息 事件                ,
"找不到指定模块!",Locale.CHINA));
Spring小结实例之消息 事件        System.out.println(context.getMessage(
"userlogin",obj
Spring小结实例之消息 事件                ,
"找不到指定模块!",Locale.US));
Spring小结实例之消息 事件        
Spring小结实例之消息 事件        context.publishEvent(
new RainEvent("下雨了!"));
Spring小结实例之消息 事件        
Spring小结实例之消息 事件    }

Spring小结实例之消息 事件}

Spring小结实例之消息 事件

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

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

 

1 楼 lizhaosuper 2007-08-27  
可以把讲spring的是视频给共享一下不
2 楼 hanwei59 2007-08-27  
这有美河的ftp地址,自己下吧。
FTP地址:60.190.223.247
FTP帐号:eimhe.com
FTP密码:原创
ftp://eimhe.com:原创@60.190.223.247/
下的部分目录结构:
├─[美河原创作品]J2EE系列讲座之Hibernate
│hibernate1.rar
│hibernate2.1.rar
│hibernate2.2.rar
│hibernate2.3.rar
├─[美河原创作品]J2EE系列讲座之SPRING
│spring1.rar
│spring2.rar
│spring3.rar
│spring3a.rar
│spring3b.rar
├─[美河原创作品]J2EE系列讲座之SSH
│ssh1.rar
│ssh2.1.rar
│ssh2.2.rar
├─[美河原创作品]J2EE系列讲座之STRUTS
│struts1.rar
│struts2.rar
│struts3.1.rar
│struts3.2.rar
│struts3.rar
│struts4.rar
如:
ftp://eimhe.com:原创@60.190.223.247/[美河原创作品]J2EE系列讲座之SPRING/spring1.rar