Java/Spring/IoC Context

Материал из Java эксперт
Перейти к: навигация, поиск

Context Aware Demo

   <source lang="java">

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress

  • /

/////////////////////////////////////////////////////////////////////////////// //File: aware.xml <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>

   <bean id="contextAware" class="ContextAwareDemo"/>

</beans> /////////////////////////////////////////////////////////////////////////////// import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.support.FileSystemXmlApplicationContext; public class ContextAwareDemo implements ApplicationContextAware {

   private ApplicationContext ctx;
   public void setApplicationContext(ApplicationContext applicationContext)
           throws BeansException {
       ctx = applicationContext;
   }
   public static void main(String[] args) {
       ApplicationContext ctx = new FileSystemXmlApplicationContext(
               "build/aware.xml");
       
       ContextAwareDemo demo = (ContextAwareDemo) ctx.getBean("contextAware");
       demo.displayAppContext();
   }
   public void displayAppContext() {
       System.out.println(ctx);
   }

}

      </source>
   
  
 
  



Message Event

   <source lang="java">

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress

  • /

/////////////////////////////////////////////////////////////////////////////////////// //File: events.xml <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>

   <bean id="publisher" class="Publisher"/>
       <bean id="messageEventListener" class="MessageEventListener"/>

</beans>

/////////////////////////////////////////////////////////////////////////////////////// import org.springframework.context.ApplicationEvent;

public class MessageEvent extends ApplicationEvent {

   private String msg;
   public MessageEvent(Object source, String msg) {
       super(source);
       this.msg = msg;
   }
   
   public String getMessage() {
       return msg;
   }
   

} /////////////////////////////////////////////////////////////////////////////////////// import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; public class MessageEventListener implements ApplicationListener {

   public void onApplicationEvent(ApplicationEvent event) {
      if(event instanceof MessageEvent) {
          MessageEvent msgEvt = (MessageEvent)event;
          System.out.println("Received: " + msgEvt.getMessage());
      }
   }

} ///////////////////////////////////////////////////////////////////////////////////////

import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.support.FileSystemXmlApplicationContext; public class Publisher implements ApplicationContextAware {

   private ApplicationContext ctx;
   public static void main(String[] args) {
       ApplicationContext ctx = new FileSystemXmlApplicationContext(
               "build/events.xml");
       Publisher pub = (Publisher) ctx.getBean("publisher");
       pub.publish("Hello World!");
       pub.publish("The quick brown fox jumped over the lazy dog");
   }
   public void setApplicationContext(ApplicationContext applicationContext)
           throws BeansException {
       this.ctx = applicationContext;
   }
   public void publish(String message) {
       ctx.publishEvent(new MessageEvent(this, message));
   }

}

      </source>