工厂类代码:
[java]
package factorybean;
import injection.MailConfig;
public class NonStaticMailConfigFactory
{
public MailConfig getMailConfig(String mailServiceProvider)
{
if ("companyOne".equals(mailServiceProvider))
return new MailConfigOfCompanyOne();
if ("companyTwo".equals(mailServiceProvider))
return new MailConfigOfCompanyTwo();
return null;
}
}
这个工厂类的方法与上一篇静态工厂类创建Bean中的工厂类中获取对象方法唯一区别就是它不是static的。
相对于使用static方法的工厂类,非静态工厂类在Spring的XML配置也有一点不同。
[html]
< xml version="1.0" encoding="UTF-8" >
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
factory-method="getMailConfig"
静态方法工厂类创建Bean中有比较详细的完整代码参考:http://blog.csdn.net/arvinrong/article/details/7734709
Client代码中获取该类的方法仍没有改变:
[java]
MailConfig mailConfig = context.getBean("mailConfig", MailConfig.class);
作者:arvinrong