Model View Injection in Spring : IoC Injection « Spring « Java






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

1.Simple Inject By ID
2.Simple Inject By Name
3.Auto Wiring
4.Dependant Check
5.Hello World Xml With DI
6.Lookup Performance