zoukankan      html  css  js  c++  java
  • 006 IOC---FactoryBean

    一 .概述

      在之前我们通过工厂创建出了Bean对象,很显然,使用起来比较麻烦,这种做法只是兼容之前的习惯而已.

      另外在spring之中,提供了一个特别的Bean,这种Bean存在的含义就是创建对象,spring使用FactoryBean来描述.


    二 .FactoryBean  

    public interface FactoryBean<T> {
    
        T getObject() throws Exception;
    
        Class<?> getObjectType();
      
        boolean isSingleton();
    
    }

    该接口定义了三个方法:

    [1]获取对象

    [2]获取对象的类型

    [3]是否单例.

    当我们配置了FactoryBean的时候,实际上是配置了一个该Bean生产的一个对象.


    三 .演示 

    public class DateFactoryBean implements FactoryBean<Date> {
        //获取对象
        @Override
        public Date getObject() throws Exception {
            return new Date();
        }
        //获取对象的类型
        @Override
        public Class<?> getObjectType() {
            return Date.class;
        }
        //获取Bean的作用域
        @Override
        public boolean isSingleton() {
            return true;
        }
    }

    配置文件:

    <bean id="date" class="com.trek.factory.DateFactoryBean"></bean>

    测试代码:  

        public static void main(String[] args) {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
            Date date = (Date) context.getBean("date");
            System.out.println(date);
        }

    我们发现,我们配置的Bean实际上是为了生产另外一个Bean而存在的.


    四 .FactoryBean的作用

      在spring之中,大量使用了FactoryBean.同时第三方的框架箱与spring集成的时候也使用了这个接口.

      通过该接口,spring会知道创建的是什么Bean,什么类型,什么作用域.

  • 相关阅读:
    微信公众号验证域名
    go在mac上打其他平台包
    screen窗口化管理守护进程
    kettle字符串null转空串
    MAC M1安装kettle spoon
    删除git文件版本控制
    LNMP状态管理命令
    事务处理
    精通 JS正则表达式
    php日期转时间戳,指定日期转换成时间戳
  • 原文地址:https://www.cnblogs.com/trekxu/p/9090732.html
Copyright © 2011-2022 走看看