Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Thursday, November 22, 2007

How to use property config file In Spring in 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();
}
}

No comments: