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)
Related examples in the same category