Java/Spring/IoC Resource

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

File System Resource Demo

   <source lang="java">

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

  • /

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

   <bean id="oracle" name="wiseworm" class="BookwormOracle"/>

</beans>

/////////////////////////////////////////////////////////////////////////////////////// public interface Oracle {

   public String defineMeaningOfLife();

}

/////////////////////////////////////////////////////////////////////////////////////// public class Encyclopedia { } /////////////////////////////////////////////////////////////////////////////////////// public class BookwormOracle implements Oracle {

   private Encyclopedia enc;
   public void setEncyclopedia(Encyclopedia enc) {
       this.enc = enc;
   }
   public String defineMeaningOfLife() {
       return "Encyclopedia"s are a waste of money - use the Internet";
   }

} /////////////////////////////////////////////////////////////////////////////////////// import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.core.io.FileSystemResource; public class XmlConfig {

   public static void main(String[] args) {
       DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
       XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory);
       rdr.loadBeanDefinitions(new FileSystemResource("build/beans.xml"));
       Oracle oracle = (Oracle)factory.getBean("oracle");
   }

}

      </source>
   
  
 
  



Message Source

   <source lang="java">

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

  • /

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

   <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
           <property name="basenames">
               <list>
                   <value>buttons</value>
                   <value>labels</value>
               </list>    
           </property>
   </bean>

</beans>

/////////////////////////////////////////////////////////////////////////////////////// import java.util.Locale; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class MessageSourceDemo {

   public static void main(String[] args) {
       ApplicationContext ctx = new FileSystemXmlApplicationContext(
               "build/messageSource.xml");
       Locale english = Locale.ENGLISH;
       Locale czech = new Locale("cs", "CZ");
       System.out.println(ctx.getMessage("msg", null, english));
       System.out.println(ctx.getMessage("msg", null, czech));
       
       System.out.println(ctx.getMessage("nameMsg", new Object[] { "Rob",
               "Harrop" }, english));
   }

}

      </source>
   
  
 
  



Spring Load Resource from file, classpath and URL

   <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));
   }

} /////////////////////////////////////////////////////////////////////////////////////// import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.core.io.Resource; public class ResourceDemo {

   public static void main(String[] args) throws Exception{
       ApplicationContext ctx = new FileSystemXmlApplicationContext(
       "build/events.xml");
 
       Resource res1 = ctx.getResource("file:///c:/test.txt");
       displayInfo(res1);
       Resource res2 = ctx.getResource("classpath:lib/commons-logging.jar");
       displayInfo(res2);
       Resource res3 = ctx.getResource("http://www.google.co.uk");
       displayInfo(res3);
   }
   
   private static void displayInfo(Resource res) throws Exception{
       System.out.println(res.getClass());
       System.out.println(res.getURL().getContent());
       System.out.println("");
   }

}


      </source>