配置方式如下:
<?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-2.5.xsd"> <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean"></bean> <bean id="personService2" class="cn.itcast.service.impl.PersonServiceBeanFactory" factory-method="createPersonServiceBean"></bean> <bean id="personServiceBeanFactory" class="cn.itcast.service.impl.PersonServiceBeanFactory"></bean> <bean id="personService3" factory-bean="personServiceBeanFactory" factory-method="createPersonServiceBean"></bean> </beans>
配置中调用到的一个FactoryBean具体代码如下:
package cn.itcast.service.impl; public class PersonServiceBeanFactory { public static PersonServiceBean createPersonServiceBean(){ return new PersonServiceBean(); } public PersonServiceBean createPersonServiceBean2(){ return new PersonServiceBean(); } }
这个FactroyBean类用到了一个Static类型方法,说明只能被本类才能直接调用,外Bean条用不到这static类型的方法。
如果把第三种实例化中的createPersonServiceBean2改成createPersonServiceBean后就会报错...
原因很简单,不能匹配到这个工厂方法(No matching factory method )。
Spring实例化
540

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



