Mega Code Archive

 
Categories / Java / Spring
 

Model View Injection in Spring

/* 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="provider" class="HelloWorldModel">         <constructor-arg>             <value>This is a configurable message</value>         </constructor-arg>     </bean>     <bean id="renderer" class="StandardOutView">         <property name="model">             <ref local="provider"/>         </property>     </bean> </beans> /////////////////////////////////////////////////////////////////////////////////////// public interface View {     public void render();          public void setModel(Model m);     public Model getModel(); } /////////////////////////////////////////////////////////////////////////////////////// public interface Model {   public String getMessage(); } /////////////////////////////////////////////////////////////////////////////////////// public class StandardOutView implements View {     private Model model = null;     public void render() {         if (model == null) {             throw new RuntimeException(                     "You must set the property model of class:"                             + StandardOutView.class.getName());         }         System.out.println(model.getMessage());     }     public void setModel(Model m) {         this.model = m;     }     public Model getModel() {         return this.model;     } } /////////////////////////////////////////////////////////////////////////////////////// public class HelloWorldModel implements Model {     String mess;          public HelloWorldModel(String m){         mess = m;     }          public String getMessage() {         return mess;     } } /////////////////////////////////////////////////////////////////////////////////////// import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class HelloWorldXml {     public static void main(String[] args) throws Exception {         // get the bean factory         BeanFactory factory = getBeanFactory();         View mr = (View) factory.getBean("renderer");         Model mp = (Model) factory.getBean("provider");         mr.setModel(mp);         mr.render();     }     private static BeanFactory getBeanFactory() throws Exception {         // get the bean factory         BeanFactory factory = new XmlBeanFactory(new FileSystemResource(                 "build/beans.xml"));         return factory;     } }                     ModelViewXML.zip( 1,199 k)