BeanFactory与FactoryBean有什么区别?

相同点:都是用来创建bean对象的

不同点:使用beanFactory创建对象的时候,必须要遵循严格的生命周期流程,太复杂了,如果想要简单的自定义某个对象的创建,同时创建好的对象想要交给spring来管理,那么就需要实现FactoryBean接口了

这个接口里有三个方法: isSingleton:是否是单例对象

getObjectType:获取返回对象的类型

getObject:自定义创建对象的过程(new 、反射、动态代理)

可以理解为:自己定制整个创建的过程,不再像之前的按照bean的生命周期那样去创建bean。

BeanFactory是提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,FactoryBean可以说为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,我们可以在getObject()方法中灵活配置

Original: https://www.cnblogs.com/yclblogs/p/15828328.html
Author: 阿龙同学
Title: BeanFactory与FactoryBean有什么区别?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588935/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 解决百度ueditor配置上传目录为外部目录时,项目启动访问不到图片的问题。

    如图所示,公司项目用到了百度的ueditor,配置的上传目录并不在项目根目录下,而是在外部目录中。于是在上传图片时,出现了无法获取图片的问题。 解决方法:添加该目录至tomcat项…

    Java 2023年6月6日
    065
  • Spring Boot @Autowired 没法自动注入的问题

    Application 启动类: @SpringBootApplication @EnableConfigurationProperties @ComponentScan(base…

    Java 2023年5月30日
    092
  • Java面向对象

    面向对象 1.面向对象的概念 面向对象和面向过程的区别 面向过程: 将问题分解成步骤,然后按照步骤实现函数,执行时一次调用函数。 数据和对数据的操作是分离的。 面向对象: 将问题分…

    Java 2023年6月9日
    084
  • Windows 搭建 Flutter 开发环境

    安装 去官网地址下载 Flutter SDK。 下载地址:https://flutter.dev/docs/development/tools/sdk/releases 将安装包解…

    Java 2023年6月7日
    069
  • Java代码实现向企业微信用户发送消息

    java;gutter:true; 1. 其实就是一个HTTP请求,如下 请求方式:POST(HTTPS) 请求地址: https://qyapi.weixin.qq.com/cg…

    Java 2023年5月29日
    089
  • ch02 JAVA入门

    JAVA入门 JAVA特点 语法和C语言类似 没有指针和内存管理 高度可移植性,运行在JVM虚拟机上 面向对象 类型安全 高质量的类库 JAVA的平台、系统和工具 构建工具:Ant…

    Java 2023年6月9日
    088
  • 图的代码实现 (邻接矩阵)

    本文的主要内容为:图的C++代码实现 (邻接矩阵法),主要为各个类的声明 图的抽象基类 图的邻接矩阵实现类 具体的功能实现放在下期文章,读者可先自行思考。 Original: ht…

    Java 2023年6月9日
    099
  • 包管理原则

    坊间传闻java web开发人员写了那么多代码,但是其实一半代码都在处理NPE。总是在加班,却大部分时间都在处理包冲突,类加载不了的bug。这些问题总是让新老程序员都很抓狂,有很多…

    Java 2023年6月8日
    093
  • Dos 命令

    管理员方式运行:选择以管理员方式与运行 常用的Dos命令 Original: https://www.cnblogs.com/mycode-blog/p/15365967.html…

    Java 2023年6月8日
    061
  • Eclipse 使用配置全面讲解

    首次使用的必要设置 1、Eclipse 的安装 下载地址:64位neon版eclipse下载 (阿里云盘下载地址,使用7-zip的自释放压缩,下载后直接双击解压,无法解压的话请下载…

    Java 2023年6月8日
    091
  • Welcome to here!

    你敢相信从早上6点40就起床了,跑去晨读赚了0.1学分。 一早上的软件测试 早八的正确打开方式就是进入了超星课堂,开启了软件测试的课堂,学习了等价类边界值综合(用户登录的测试),由…

    Java 2023年6月5日
    077
  • 对于Java中权限修饰符的理解

    老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类。 首先要知道包的概念,Java中一个包是指一个package…

    Java 2023年6月15日
    060
  • 【力扣】83. 删除排序链表中的重复元素

    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。 示例 1: 输入:head = [1,…

    Java 2023年6月8日
    064
  • dubbo源码分析4(spring配置文件解析机制)

    我们知道dubbo一般也不会单独使用的吧,都会和spring一起使用,知道为什么吗? 因为dubbo是基于spring的扩展机制进行扩展的,所以首先我们要知道spring提供了一种…

    Java 2023年6月6日
    081
  • Java连载146-内存泄漏和容器

    内存溢出和内存泄漏的区别 内存溢出,就是我们在内存种分配了一块内存区域,但是当我添加了超出内存的数据的时候,就会导致溢出部分,覆盖了其他的内存,影响到了其他数据.内存溢出容易招致黑…

    Java 2023年6月13日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球