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

    }
    }

    输出结果:

  • 相关阅读:
    密码系统的安全性
    liboqs-量子安全密码算法开源C库
    密码基础知识(1)
    同态加密
    NTL 库函数
    以太坊相关的区块链知识
    53字符流中第一个不重复的字符
    基础小知识总结
    52表示数值的字符串 记忆
    HIHOcoder编程总结
  • 原文地址:https://www.cnblogs.com/MichaelPL/p/11631808.html
Copyright © 2011-2022 走看看