Being接口:
package com.dora.testingAnimal.ibeans;
public interface Being {
public void testBeing();
}
Dog和Cat两个类实现了Being接口:
package com.dora.testingAnimal.bean;
import com.dora.testingAnimal.ibeans.Being;
public class Dog implements Being{
private String msg;
public void setMsg(String msg) {
this.msg=msg;
}
public void testBeing() {
System.out.println(msg+ " 狗爱啃骨头");
}
}
package com.dora.testingAnimal.bean;
import com.dora.testingAnimal.ibeans.Being;
public class Cat implements Being{
private String msg;
public void setMsg(String msg) {
this.msg=msg;
}
public void testBeing() {
System.out.println(this.msg+" 猫爱吃鱼");
}
}
配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="beanFactory" class="com.dora.testingAnimal.service.BeingFactory" />
<bean id="dog" class="com.dora.testingAnimal.service.BeingFactory" factory-bean="beanFactory" factory-method="getBeing">
<constructor-arg value="dog" />
<property name="msg" value="这是一只小狗" />
</bean>
<bean id="cat" class="com.dora.testingAnimal.service.BeingFactory" factory-bean="beanFactory" factory-method="getBeing">
<constructor-arg value="cat" />
<property name="msg" value="这是一只小猫" />
</bean>
</beans>
主程序获得Dog和Cat对象为:
package com.dora.testingAnimal.service;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dora.testingAnimal.ibeans.Being;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Being b1 = ctx.getBean("dog", Being.class);
b1.testBeing();
Being b2 = ctx.getBean("cat", Being.class);
b2.testBeing();
}
}