现在的位置: 首页 > 综合 > 正文

spring 静态工厂 &实例工厂实例方法 & 实现factorybean接口

2018年02月11日 ⁄ 综合 ⁄ 共 1290字 ⁄ 字号 评论关闭

<!--无用 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得到工厂本身

抱歉!评论已关闭.