<!--无用 pass单例中注入原型bean 通过lookup-method 控制原型bean的生命周期 ciglib反射 代理去生成
<bean id="menuInfo" class="com.pojo.MenuInfo" scope="prototype"></bean>
<bean id="lookup" class="org.lemon.factory.LookUpTest">
<lookup-method bean="menuInfo" name="createMenuInfo"/>
</bean> -->
(1)实例工厂 实例方法
<bean id="factorys1" class="org.lemon.factory.FactorysTest" >
</bean>
<bean id="currentTime1" factory-bean="factorys1" factory-method="parseDate">
<constructor-arg value="yyyy-MM-DD HH:mm:ss"></constructor-arg>
</bean>
<bean id="currentTime2" factory-bean="factorys1" factory-method="parseDate">
<constructor-arg value="yyyy-MM-DD"></constructor-arg>
</bean>
<bean id="currentTime3" factory-bean="factorys1" factory-method="parseDate" >
<constructor-arg value="yyyy-MM-dd hh:mm:ss"></constructor-arg>
</bean>
(2)静态工厂
<bean id="testFactory" class="org.lemon.factory.TestFactory"></bean>
<bean id="factoryMethod" class="org.lemon.factory.FactoryMethodBean" factory-method="getBean" scope="prototype">
<constructor-arg type="com.bean.FtpServerInfo" ref="ftpServerInfo"></constructor-arg>
<constructor-arg type="java.lang.String" value="factory"></constructor-arg>
</bean>
对于一和二 scope配置单例 则容器初始化调用工厂方法返回一次 若为原型 则每次调用工厂方法返回工厂产生对象
两者都通过construct-arg 传递方法参数
第二种工厂本身不被实例化
(3)实现factorybean 接口
一般组件 框架中 这么干 如jndi、rmi、sessionfactory等,beanname得到工厂产生对象,&beanname得到工厂本身