Spring Load Resource from file, classpath and URL
/* 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(""); } }
1. | File System Resource Demo | ![]() | |
2. | Message Source | ![]() |