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"));

    }
    }

    输出结果:

  • 相关阅读:
    MYSQL存储引擎
    微信公众号自定义菜单
    TCP 三次握手与四次挥手
    微信扫码关注公众号并登录网站
    redis scan命令使用
    [转]Maven多模块结构下版本管理的正确姿势-revision
    线程间的协作wait,notify,sleep,yield,join
    GIT 撤销操作
    Kafka学习理解-listeners配置
    Kafka 简介梳理
  • 原文地址:https://www.cnblogs.com/MichaelPL/p/11631808.html
Copyright © 2011-2022 走看看