Spring Java

/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/
///////////////////////////////////////////////////////////////////////////////////////
//File: msf.properties
renderer.class=StandardOutView
provider.class=HelloWorldModel
///////////////////////////////////////////////////////////////////////////////////////
public interface Model {
  public String getMessage();
}
///////////////////////////////////////////////////////////////////////////////////////
public interface View {
    public void render();
    
    public void setModel(Model m);
    public Model getModel();
}
///////////////////////////////////////////////////////////////////////////////////////
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 {
    public String getMessage() {
        return "Hello World!";
    }
}
///////////////////////////////////////////////////////////////////////////////////////
import java.io.FileInputStream;
import java.util.Properties;
public class MessageSupportFactory {
    private static MessageSupportFactory instance = null;
    private Properties props = null;
    private View renderer = null;
    private Model provider = null;
    private MessageSupportFactory() {
        props = new Properties();
        try {
            props.load( MessageSupportFactory.class.getResource("msf.properties").openStream());
            // get the implementation classes
            String rendererClass = props.getProperty("renderer.class");
            String providerClass = props.getProperty("provider.class");
            renderer = (View) Class.forName(rendererClass).newInstance();
            provider = (Model) Class.forName(providerClass).newInstance();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    static {
        instance = new MessageSupportFactory();
    }
    public static MessageSupportFactory getInstance() {
        return instance;
    }
    public View getView() {
        return renderer;
    }
    public Model getModel() {
        return provider;
    }
}
///////////////////////////////////////////////////////////////////////////////////////
public class HelloWorldDecoupledWithFactory {
    public static void main(String[] args) {
        View mr = MessageSupportFactory.getInstance().getView();
        Model mp = MessageSupportFactory.getInstance().getModel();
        mr.setModel(mp);
        mr.render();
    }
}
           
       
SimplestMVCInSpring.zip( 1,201 k)