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
    本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
  • 相关阅读:
    configuring tortoise git and vs code.
    introcuding less css with less.js, using webcompiler ext
    CSS3 auto revolution practitioner!
    我与 美国作家 21天精通C++ 作者 Rao的对话:
    AngularJs Test demo &front end MVVM implementation conjecture and argue.
    GreenPlum完全安装_GP5.11.3完整安装
    hdfs文件写入kafka集群
    Greenplum主备节点切换
    Greenplum客户端访问控制
    Greenplum+mybatis问题解析
  • 原文地址:https://www.cnblogs.com/donleo123/p/14069374.html
Copyright © 2011-2022 走看看