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 HelloWorldWithSpringUsage {    public static void main(String[] args) throws Exception {        //取得Bean工厂
        BeanFactory factory = getBeanFactory();
        //从Bean工厂中分别取得MessageDisplayer和MessageSupplier实例
        MessageDisplayer displayer =
                (MessageDisplayer) factory.getBean("displayer");
        MessageSupplier supplier =
                (MessageSupplier) factory.getBean("supplier");        //手工注入MessageSupplier实例
        displayer.setMessageSupplier(supplier);
        //显示消息
        displayer.display();
    }    private static BeanFactory getBeanFactory() throws Exception {
        //创建一个BeanFactory的实例
        //(DefaultListableBeanFactory实现了BeanFactory接口)
        DefaultListableBeanFactory factory =new DefaultListableBeanFactory();        //创建一个用于读取Bean定义的阅读器,该阅读器专门用于
        //读取定义在properties文件中的Bean定义
        //该阅读器典型地就是和DefaultListableBeanFactory在一起工作
        PropertiesBeanDefinitionReader rdr =
                new PropertiesBeanDefinitionReader(factory);        //读取属性文件
        Properties props = new Properties();
        props.load(new FileInputStream("msgbean.properties"));        //向阅读器注册Bean的属性定义
        rdr.registerBeanDefinitions(props);        return factory;
    }
}public interface MessageSupplier {
        /**
         * 取得消息
         */
        String getMessage();
}public interface MessageDisplayer {
    /**
     * 消息提供者的getter/setter
     */
    void setMessageSupplier(MessageSupplier supplier);    MessageSupplier getMessageSupplier();    /**
     * 显示消息
     */
    void display();}public class HelloWorldMessageSupplier implements MessageSupplier {    /*
     * 固定的返回Hello World字串信息
     */
    public String getMessage() {
        return "Hello World";
    }
}
public class ConcreteMessageDisplayer implements MessageDisplayer {
    private MessageSupplier messageSupplier = null;    public MessageSupplier getMessageSupplier() {
        return messageSupplier;
    }    public void setMessageSupplier(MessageSupplier messageSupplier) {
        this.messageSupplier = messageSupplier;
    }    public void display() {
        //预期检查,如果javabean属性为空,则报错
        if (messageSupplier == null) {
            throw new RuntimeException(
                    "必须设定这个类的messageSupplier属性: "
                    + ConcreteMessageDisplayer.class.getName());        }
        //委托messageSupplier来显示消息内容
        System.out.println(messageSupplier.getMessage());
    }}配置文件msgbean.properties如下:
displayer.class=ConcreteMessageDisplayer
supplier.class=HelloWorldMessageSupplier