网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.抓住时机,利用Java,使之成为信.
.Java咖啡馆(11):Java插件技术.
.DX图形流程(基于MESH静态模型绘.
.java高级多线程编程(一)--关于线.
.jive中的abstractFactory.
.使用布局管理器 呈现生动的JAVA程.
.轻松玩转Java配置的Classpath.
.用JBuilder高效率开发Java程序.
.String类的intern内部化方法释疑.
.头文件生成器-javah.exe.
.面向对象编程:Java中的抽象数据类.
.如何用servlet打开非HTML格式的文.
.EJB的困惑:组件与可重用性的矛盾.
.Java入门:状态对象--数据库的替.
.再论弹出窗口.
.Java Applet编程技巧之文字显示.
.Java 操作二维数组实例.
.用AspectJ和Spring进行依赖项插入.
.Java程序把Word文档直接转换成HT.
.SonyEricsson发布更好支持企业级.

Spring总结实例之消息与事件

发表日期:2008-1-5


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

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


上一篇:使用Java程序的泛型应该注意的几个地方 人气:756
下一篇:Java关于克隆与“冷藏”和“解冻”方法 人气:571
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐