zoukankan      html  css  js  c++  java
  • 工厂bean和bean工厂

    FactoryBean(工厂bean):是bean的加工工厂,是对已知Bean的加工,是一个接口,要实现三个方法:

    ① Object getObject()可以对bean进行加工添加功能。

    ② Class getObjectType()。

    ③ Boolean isSingleton()。

    Bf.getBean(“ab”)只是得到MyFactory.getObject()的object对象 所以最后要强转。

    Beanfactory bean工厂 就是生产bean的工厂,注入:

    由于Spring IoC容器以框架的方式提供了工厂方法的功能,并以透明的方式给开发者,不过在一些遗留系统或第三方类库中,我们还会碰到工厂方法,这时用户可以使用Sping使用工厂方法注入的方式进行配置。

    静态工厂方法:

    很多工厂类方法都是静态的,这意味着用户在无须创建工厂类实例的情况就可以调用工厂类方法。因此静态工厂方法比非静态工厂方法的调用更加方便。我们将carFactory类的getCar()方法调整为静态的然后再Spring配置如下:

    
    <bean id=”car” class =”carFactory” factory-method=”getCar”/>
    

    用户直接通过class属性指定工厂类, 然后在通过factory-method指定对应的静态工厂方法创建bean。

    如果静态工厂方法需要参数则用传入

    实例工厂方法:

    有些工厂是非静态的,即必须是实例化工厂类才能调用工厂方法。

    下面我们实例化一个工厂类CarFactory类来为Car类提供实例。

    
    package com.car;
    
    public class CarFactory
    
    { public Car getCar(){return new Car();}}
    

    工厂类负责创建一个或多个目标类实例,工厂类方法一般以接口或抽象类变量的形式返回目标类。工厂类对外屏蔽了目标类的实例化步骤。调

    用甚至不知道如何具体的目标类是什么。

    下面我们在Spring 配置文件中进行配置

    
    <!--工厂Bean生成目标Bean-->
    
    <bean id=”carFactory” class=”com.CarFactory”/>
    
    <!--工厂Bean目标Bean-->
    
    <bean id=”car” factory-bean=”carFactory” factory-method=”getCar”/>
    

    factory-bean=”carFactory”指定了工厂类Bean,factory-method=”getCar”指定了工厂类Bean创建该Bean的工厂方法。

    和静态工厂类似如果工厂方法需要参数则用

    
    <p:constructor-arg index=”0”value="calendar"></p:constructor-arg>传入
  • 相关阅读:
    练习课(二)
    html5,实例开发代码
    html,移动端代码
    html5,导航
    html5,表格与框架综合布局
    html5,表格
    HTML5,添加图片
    HTML5,超级链接
    access链接最原始代码,两种
    显示刚刚添加的最后一条数据,access,选择语句,select
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9795621.html
Copyright © 2011-2022 走看看