Simplest Usage of property config file In Spring : IoC Config « Spring « Java






Simplest Usage of property config file In Spring


/*
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)

Related examples in the same category

1.IoC XML Config
2.Load Bean Definition From XML File
3.Lookup Demo
4.IoC in properties file