zoukankan      html  css  js  c++  java
  • Spring IOC容器基于配置文件装配Bean(5) ------通过工厂方法配置bean

    一、通过自定义工厂方法装配Bean

    spring--factory.xml

    <?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.xsd">
    
            <!--通过静态工厂方法来配置bean   注意:不是配置静态工厂方法实例,而是配置bean实例-->
            <!--
                class:指向静态工厂方法的全类名
                factory-method:静态工厂方法名
                constructor-arg:如果静态工厂方法需要传入参数,则用constructor-arg配置参数
            -->
            <bean id="carBean1" class="com.spring.cn.config.factory.StaticCarBeanFactory"
                    factory-method="getCar">
                    <constructor-arg name="name" value="baoma"/>
            </bean>
    
    
    
    
            <!--配置工厂实例-->
            <bean id="instanceCarBeanFactory" class="com.spring.cn.config.factory.InstanceCarBeanFactory"/>
    
            <!--通过实例工厂方法来配置bean-->
            <!--
              factory-config:指向实例工厂方法的名字
              factory-method:实例工厂方法名
              constructor-arg:如果静态工厂方法需要传入参数,则用constructor-arg配置参数
          -->
            <bean id="carBean2" factory-bean="instanceCarBeanFactory" factory-method="getCar">
                    <constructor-arg name="name" value="aodi"/>
            </bean>
    </beans>

    二、通过FactoryBean装配Bean

    spring-factory-bean.xml

    <?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.xsd">
    
        <!--通过FactoryBean来配置bean的实例-->
        <!--
            class:指向CarFactoryBean的全类名
            property:配置factoryBean的属性
    
            但实际返回的实例是FactoryBean中的getObject()方法返回的实例!
        -->
        <bean id="carBean" class="com.spring.cn.config.factoryBean.CarFactoryBean">
            <property name="brand" value="宝马"/>
            <!--<property name="brand" value="BMW"/>-->
        </bean>
    </beans>
    作者:donleo123
    本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
  • 相关阅读:
    隐藏虚拟网卡
    Eclipse3.2编码选中对象着色
    PHP里的字符串定义小技巧汇总
    【原创】交互型网页防止IP欺骗的技巧
    VS2005的报错让我“二”了一把
    【原创】利用PHP5的__autoload代替繁琐低效的的外部文件包含方式
    关于WebDataWindow.Net的一些开发小细节
    PHP效率损失操作汇总
    动态添加按钮及关联方法(带参数)
    GridView中模版列使用RowCommand事件如何得到当前列的行索引或记录ID
  • 原文地址:https://www.cnblogs.com/donleo123/p/14069374.html
Copyright © 2011-2022 走看看