Java/Spring/IoC Resource — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 09:16, 1 июня 2010
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>