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