/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/
///////////////////////////////////////////////////////////////////////////////////////
//File: beans.properties
# The View
view.class=StandardOutView
view.model(ref)=model
# The Model
model.class=HelloWorldModel
///////////////////////////////////////////////////////////////////////////////////////
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 {
public String getMessage() {
return "Hello World!";
}
}
///////////////////////////////////////////////////////////////////////////////////////
import java.io.FileInputStream;
import java.util.Properties;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
public class HelloWorldSpring {
public static void main(String[] args) throws Exception {
// get the bean factory
BeanFactory factory = getBeanFactory();
View v = (View) factory.getBean("view");
Model mp = (Model) factory.getBean("model");
v.setModel(mp);
v.render();
}
private static BeanFactory getBeanFactory() throws Exception {
// get the bean factory
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
// create a definition reader
PropertiesBeanDefinitionReader rdr = new PropertiesBeanDefinitionReader(
factory);
// load the configuration options
Properties props = new Properties();
props.load(HelloWorldSpring.class.getResource("beans.properties").openStream());
rdr.registerBeanDefinitions(props);
return factory;
}
}
HelloWorld.zip( 1,199 k)