Spring BeanFactory和FactoryBean的区别

BeanFactory和FactoryBean的区别

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

  • 不同点:

    • 使用BeanFactory创建对象的时候,必须要遵循严格的生命周期流程
    • 如果想要简单的自定义某个对象的创建,同时创建完成的对象想交给spring来管理,那么就需要实现FactroyBean接口了
      isSingleton:是否是单例对象
      getObjectType:获取返回对象的类型
      getObject:自定义创建对象的过程(new,反射,动态代理)
  • FactroyBean 的好处
    简化XML配置,隐藏细节:假设一个类有非常多的属性,我们想通过spring对类中的属性进行值的注入,势必会在配置文件中书写大量的属性配置,造成配置文件臃肿,那么此时可以考虑使用FactoryBean来简化配置

  • 以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576368.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于DBO-CNN-BiLSTM数据回归预测(多输入单输出),蜣螂优化算法优化CNN-BiLSTM-附代码

基于DBO-CNN-BiLSTM的数据回归预测是一种综合利用了深度学习中的多种技术的方法,包括卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)和注意力机制(Attention)。蜣螂优化算法用于优化CNN-BiLSTM…

大模型时代下的“金融业生物识别安全挑战”机遇

作者:中关村科金AI安全攻防实验室 冯月 金融行业正在面临着前所未有的安全挑战,人脸安全事件频发,国家高度重视并提出警告,全行业每年黑产欺诈涉及资金额超过1100亿元。冰山上是安全事件,冰山下隐藏的是“裸奔”的技术…

吐血分享|木鸟、途家、美团三大民宿平台谁便宜?亲测只要这个价

马上就要清明节了,不少用户都做好了出游准备。木鸟、途家、美团作为民宿行业第一梯队用户体验究竟怎样?笔者将深入分析三大App,让各位看官对它们有更清楚的认识。 木鸟和途家成立于2011-2012年期间,作为国内老牌民宿预订平台&…

Day46:WEB攻防-注入工具SQLMAPTamper编写指纹修改高权限操作目录架构

目录 数据猜解-库表列数据&字典 权限操作-文件&命令&交互式 提交方法-POST&HEAD&JSON 绕过模块-Tamper脚本-使用&开发 分析拓展-代理&调试&指纹&风险&等级 知识点: 1、注入工具-SQLMAP-常规猜解&字典配置 2、注入…

玻璃在氢氟酸中的湿化学腐蚀综述

引言 眼镜由于其独特的特性,被广泛应用于光学器件、MEMS器件和太阳能电池中。光学透明性和承受许多光散射影响的能力可以被认为是在这方面最显著的特性。玻璃是由于其独特的太阳能电池的捕光特性,该材料可以相对容易地给出所需的形状的一种结合。薄膜硅…

LLM2LLM: Boosting LLMs with Novel Iterative Data Enhancement

LLM2LLM: Boosting LLMs with Novel Iterative Data Enhancement 相关链接:arXiv GitHub 关键字:LLM、Data Augmentation、Fine-tuning、NLP、Low-data Regime 摘要 预训练的大型语言模型(LLMs)目前是解决绝大多数自然语言处理任…

Mysql数据库-DQL查询

Mysql数据库-DQL基本查询 1 DQL基本查询1.1 基础查询1.2 WHERE子句1)算术运算符2)逻辑运算符3)比较运算符A)BETWEEN... AND ...B)IN(列表)C)NULL值判断 4)综合练习 2 DQL高级查询2.1 LIKE 模糊查…

【清华大学开源软件镜像站】

清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/ 一些常用的软件,使用量比较大的软件或工具,下载速度较慢的,可以试试清华镜像,在网站里搜索一下试试。

3D关键点检测项目 | 基于多视图视频+自监督的3D关键点检测实现

项目应用场景 输入来自多摄像头视频,使用自监督算法来进行 3D 关键点检测,特点是不需要依赖于单图的 2D 关键点特征,而是从多视图行为视频中直接检测 3D 关键点,项目适用于人类在内的一系列生物体 项目效果: 项目流程…

Qt打印系统库的日志 - QLoggingCategory

Qt的动态库通过源码可以可以看到含有大量的qCInfo 和 qCDebug 等大量的日志, 但是我们正常运行Qt程序,这些动态库或插件里面的日志是不会输出到我们的控制台里面的。 所以本章主要记录怎么输出这些日志出来。 一: 步骤 主要使用的是Qt的 函…

【分布式】——CAPBASE理论

CAP&BASE理论 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/tree-learning-notes ⭐⭐⭐⭐⭐⭐ Spring专栏👉https://blog.csdn.net/weixin_53580595/category_12279588.html Sprin…

Rust控制台输出跑马灯效果,实现刷新不换行,实现loading效果

要在 Rust 中实现控制台刷新而不换行,以实现类似 "loading" 状态的效果,你可以使用 \r(回车符)来覆盖上一行的内容。 use std::io::{self, Write}; use std::thread; use std::time::Duration;fn main() {let loading_…