public interface IHelloMessage {
public String sayHello();
}
HelloWorld:接口的实现类,向用户输出“Hello everybody”信息public class HelloWorld implements IHelloMessage{
public String sayHello() {
return "Hello Everybody";
}
}
HelloChina:接口的实现类,向用户输出“大家好!”信息public class HelloChina implements IHelloMessage{
public String sayHello() {
return "大家好!";
}
}
Person:一个人物类,调用IHelloMessage接口,向用户输出问候信息public class Person {
//因为Person类要引用IHelloMessage接口,所以将IHelloMessage作为类的一个属性
private IHelloMessage iHelloMessage;
/**
* 自动生成get方法
* @return
*/
public IHelloMessage getiHelloMessage() {
return iHelloMessage;
}
/**
* 自动生成set方法
* @param iHelloMessage
*/
public void setiHelloMessage(IHelloMessage iHelloMessage) {
this.iHelloMessage = iHelloMessage;
}
/**
* person类使用sayHello方法来调用借口的sayHello方法
* @return
*/
public String sayHello(){
return this.iHelloMessage.sayHello();
}
}
Main:程序的入口类,用于加载配置文件以及启动IOC容器,调用人物类,向用户输出问候信息
public class Main {
public static void main(String[] args){
//使用FileSystemResource来读取配置文件
Resource r=new FileSystemResource("helloMessage.xml");
//使用XmlBeanFactory加载配置信息,启动IOC容器
//Spring3.1之后已经废弃XmlBeanFactory
//BeanFactory b=new XmlBeanFactory(r);
DefaultListableBeanFactory factory=new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader=new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(r);
//从IOC容器中获取Person类的实例
//Person person=(Person)b.getBean("Person");
Person person= (Person) factory.getBean("Person");
//使用person类示例来输出问候信息
String s=person.sayHello();
System.out.println("The Person is currently saying "+s);
}
}
接下来,为示例代码建立配置文件helloMessage.xml文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="HelloChina" class="cn.lovepi.chapter01.HelloChina">
</bean>
<bean id="HelloWorld" class="cn.lovepi.chapter01.HelloWorld">
</bean>
<bean id="Person" class="cn.lovepi.chapter01.Person">
<!--bean中属性配置,属性即为类中所声明的接口变量。给其添加了一个引用-->
<property name="iHelloMessage" ref="HelloWorld">
</property>
</bean>
</beans>