BeanFacotry和FacotryBean的区别
来源:互联网 发布:算法题库及答案 编辑:程序博客网 时间:2024/06/03 19:54
Spring的BeanFacotry是一个类工厂,使用它来创建各种类型的Bean,最主要的方法就是getBean(String beanName),该方法从容器中返回特定名称的Bean,只不过其中有一种Bean是FacotryBean.
一个Bean 要想成为FacotryBean,必须实现FactoryBean 这个接口。
FactoryBean定义了三个接口方法:
1)Object getObject():返回由FactoryBean创建的Bean的实例,如果isSingleton()方法返回true,是单例的实例,该实例将放入Spring的缓冲池中;
2)boolean isSingleton*():确定由FactoryBean创建的Bean的作用域是singleton还是prototype;
3) getObjectType():返回FactoryBean创建的Bean的类型。
FactoryBean 是一直特殊的bean,它实际上也是一个工厂,我们在通过FactoryBeanName得到的Bean,是FacotryBean创建的Bean,即它通过getObject()创建的Bean.我们要想得到FactoryBean本身,必须通过&FactoryBeanName得到,即在BeanFactory中通过getBean(&FactoryBeanName)来得到 FactoryBean
注:在spring 中是通过BeanFactoryUtils.isFactoryDereference()来判断一个Bean是否是FactoryBean.
spring 内部实现中应该是在通过BeanFacotry 的getBean(String beanName) 来得到Bean时,如果这个Bean是一个FactoryBean,则把它生成的Bean返回,否者直接返回Bean.
- BeanFacotry和FacotryBean的区别
- 去掉对Spring BeanFacotry的getBean方法的依赖
- 和和的区别
- & 和 &&、|和||的区别:
- &和&&、|和||的区别
- &&和&,||和|的区别
- &和&&、|和||的区别
- &和&&、|和||的区别
- ../和./和/的区别
- &和&&,|和||的区别
- "&"和"&&"、"|"和"||"的区别
- &和&& |和||的区别
- &和&&的区别 |和||的区别
- &&和&的区别,||和|的区别
- &和&&的区别以及|和||的区别
- &&和&的区别? | | 和|的区别?
- &和&&的区别,|和||的区别
- &和&&的区别及!和~区别
- ThreadLocal使用,Thread的start和run的区别,等一些琐碎的东西
- AngularJS 依赖注入
- CentOS7中关闭selinux
- SVN出现.mine等文件, 原因是应为版本冲突
- 采用微服务时必须解决的四个挑战
- BeanFacotry和FacotryBean的区别
- 写在前面
- 嵌入式ARM交叉编译器安装
- RxJava 系列之基本语法(1)
- 解决JavaWeb中图片路径的做法
- Socket网络编程学习笔记(5):发送和接收实体类数据
- 混淆Proguard文件
- WordPress主题制作全过程(十一):制作page.php
- 视频质量诊断系统软件