zoukankan      html  css  js  c++  java
  • BeanFacotry和FactoryBean的区别

    BeanFactory

      BeanFacotry是一个访问Spring容器的一个接口(或者说他就是Spring容器的接口),Spring中的所有的Bean都是由BeanFactory进行管理的。 

      我们常用的getBean就是BeanFactory的提供的方法。

      

    FactoryBean

      FacotryBean是Spring为我们提供的一个简便的实现工厂模式的一个接口,这个工厂由Spirng帮我们管理。

      简单理解FactoryBean以Bean结尾,他实际也是一个Bean,但是和其他Bean不同的是这个Bean是由Spring帮我们实现了一个工厂模式。

      

    这里需要注意实现了FactoryBean的Bean根据name去getBean时,获取到的是getObject()返回的对象,如果要需要如果FactoryBean这个Bean,则需要在beanName前面加上& 

    测试代码如下

    @Component("demoFactoryBean")
    public class DemoFactoryBean implements FactoryBean<Demo> {
        @Override
        public Demo getObject() throws Exception {
            return new Demo();
        }
    
        @Override
        public Class<?> getObjectType() {
            return Demo.class;
        }
    
    }
    public class TestDemo {
    public static void main(String[] args) {

    ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
    System.out.println(applicationContext.getBean("demoFactoryBean"));
    System.out.println(applicationContext.getBean("&demoFactoryBean"));

    }
    }

    输出结果:

  • 相关阅读:
    HTML目录
    Java目录
    高级Swing——列表
    Java Web目录
    mongodb目录
    MySQL目录
    基于C++11的线程池
    数据库架构的演变
    cocos2dx-3.0(14)------SpriteBatchNode与SpriteFrameCache加快渲染
    cocos2d-x 托付模式的巧妙运用——附源代码(一)
  • 原文地址:https://www.cnblogs.com/MichaelPL/p/11631808.html
Copyright © 2011-2022 走看看