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=" "
xmlns:xsi=" "
xsi:schemaLocation=" ">
<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.
java-Spring通过实例讲解信息与事件
原创yzuisoz ©著作权
文章标签 java-Spring.十全十美 文章分类 Java 后端开发
-
RabbitMQ与java、Spring结合实例详细讲解
健壮、稳定、
java erlang Erlang -
RabbitMQ与java、Spring结合实例详细讲解【专题】
消息代理(Message Broker): 一种消息验证、传输、路由的架构模式,实现应用程序之间消息传递的解耦 RabbitMQ:实现高级消息队列协议
spring erlang rabbitmq 服务器 持久化 -
Spring AOP引入实例讲解
Spring AOP 引入 Step1:项目 aop_leadin1 先定义好接口与一个实现类,该实现类中除了要实现接口中的方法外,还要再
Spring 业务逻辑 连接点 面向切面编程