Person.java :
public interface Person {
public String sayHello(String name);
public String sayGoodBye(String name);
}Chinese.java :
public class Chinese implements Person {
@Override
public String sayGoodBye(String name) {
return name+",再见!";
}
@Override
public String sayHello(String name) {
return name+",你好";
}
}American.java :
public class American implements Person {
@Override
public String sayGoodBye(String name) {
return name+",Good Bye !";
}
@Override
public String sayHello(String name) {
return name+",Hello !";
}
}PersonFactory.java :
public class PersonFactory {
public Person getPerson(String ethnic){
if(ethnic.equalsIgnoreCase("chin")){
return new Chinese();
}else{
return new American();
}
}
}
bean.xml核心配置 :
<bean id="personFactory" class="com.bean.PersonFactory"/>
<bean id="chinese" factory-bean="personFactory" factory-method="getPerson">
<constructor-arg value="chin"/>
</bean>
<bean id="american" factory-bean="personFactory" factory-method="getPerson">
<constructor-arg value="ame"/>
</bean>Test.java :
public class Test {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");
Person p1=(Person) ctx.getBean("chinese");
System.out.println(p1.sayGoodBye("tom")+p1.sayHello("tom"));
Person p2=(Person) ctx.getBean("american");
System.out.println(p2.sayGoodBye("tom")+p2.sayHello("tom"));
}
}
运行Test.java,控制台输出:
本文通过一个具体的例子展示了如何使用Spring框架来管理Java类的实例创建过程。通过定义接口Person及其实现类Chinese和American,利用Spring的bean工厂方法实现不同文化背景下的问候方式。文章详细解释了Bean的定义、工厂Bean的使用以及依赖注入的过程。
604

被折叠的 条评论
为什么被折叠?



