程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Spring總結實例之消息與事件

Spring總結實例之消息與事件

編輯:JAVA編程入門知識

  前幾天看到網友總結的自學經驗,覺得說得很好,引文:光看別人騎自行車很輕易, 那麼是不是看了幾百遍別人怎麼騎自行車你也就馬上能騎著走了呢? 不摔跤是不可能學會的。

  還有就是要經常總結:剛才說到會摔跤, 那麼這時候就要總結碰到的問題, 這樣下次再碰到就不會再去回憶了. 好記性不如爛筆頭. 注釋, 假如今天不寫, 那麼以後只會越來越忙, 以後再也沒時間寫注釋了. 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. 


 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved