FactoryBean粗解以及使用案例

Labview项目01:标准可配置序列测试框架 摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试 阅读详情

在这里插入图片描述

前面文章大致了解了BeanFactory 接口,以及提供的相关能力。看到FactoryBean 这个接口的命名,可能会直接迷糊,这两个接口用到的字母都一样,只是中建的单词对调了一下。是不是功能和能力大致一样?做技术,不能想当然的去判断和猜测,要看证据。

签名分析

每个类以及接口都有自己的唯一签名。FactoryBean 的命名绝对不是因为存在BeanFactory不能重复,而故意颠倒一下。

  • BeanFactory 命名上可以确定是一个工厂,并且是一个bean工厂,提供了bean的一堆访问能力
  • FactoryBean 命名上来说是工厂Bean,是一个Bean,应该提供了生成工厂的方法

差别

接口描述用途
BeanFactory首先是一个工厂,是访问bean的工厂用于访问spring 容器中的bean
FactoryBean首先是一个bean,是生成工厂点的bean用于生成bean的工厂

Factory源码

接口源码,已经删掉了注释;如下:


public interface FactoryBean<T> {

	
	String OBJECT_TYPE_ATTRIBUTE = "factoryBeanObjectType";


	@Nullable
	T getObject() throws Exception;

	@Nullable
	Class<?> getObjectType();

	default boolean isSingleton() {
		return true;
	}
}

官方对于这个接口的说明是:

Interface to be implemented by objects used within a BeanFactory which are themselves factories for individual objects. If a bean implements this interface, it is used as a factory for an object to expose, not directly as a bean instance that will be exposed itself.

由 BeanFactory 中使用的对象实现的接口,这些对象本身就是单个对象的工厂。如果 Bean 实现了此接口,那么它将用作要公开的对象的工厂,而不是直接用作将要公开的 Bean 实例。

方法介绍

  • T getObject() 返回工厂生产的一个实例(这个工厂就是通过这个方法生产对象的)
  • Class<?> getObjectType() 生产的对象的实例的类型
  • boolean isSingleton() 是否是单例,默认为true

案例

接口很简单,带来的扩展性很大。这种扩展性可以为开发中的自己的代码设计作为参考。

Mybatis中基于spring的这个接口的扩展

在开发中,为什么mybatis写一个接口,就可以被service层直接当做一个bean去使用的?就是基于这个做了扩展,核心扩展类SqlSessionFactoryBean,签名如下:
在这里插入图片描述
核心实现的方法如下:

 public SqlSessionFactory getObject() throws Exception {
        if (this.sqlSessionFactory == null) {
            this.afterPropertiesSet();
        }

        return this.sqlSessionFactory;
    }

    public Class<? extends SqlSessionFactory> getObjectType() {
        return this.sqlSessionFactory == null ? SqlSessionFactory.class : this.sqlSessionFactory.getClass();
    }

    public boolean isSingleton() {
        return true;
    }

这里的扩展点已经显而易见了。如果在使用spring的时候也这样进行扩展,是不是会非常优雅,非常高大上。

写代码的同时牢记“优雅永不过时”

从零到一:ESP32与豆包大模型的RTC连续对话实现指南 文本实现ESP32S3 SparkBot与豆包大模型的RTC连续对话 阅读详情

相关推荐

Vivado SDK中LWIP库版本冲突与RTL8211FDI兼容性实战解析

本文深入解析Vivado 2019.1 SDK中LWIP 1.0库与RTL8211FDI千兆PHY芯片的版本冲突问题,并提供实战解决方案。通过手动移植高版本LWIP库、整合第三方驱动及优化BSP配置,有效解决了以太网通信兼容性问题,确保千兆性能稳定运行。

ios99的博客 276

FactoryBean使用及真实应用场景

FactoryBean主要是用来在spring初始化的过程中创建bean的工厂,个人理解它更像一个插件的接口。可以将第三方的类优雅的加载到spring容器中。可能还有其他功能有待开发。

weixin_45996580的博客 2277

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1120

FactoryBean的使用案例以及BeanFactory与FactoryBean的区别

BeanFactory与FactoryBeandocumentation 为了进一步深入BeanFactory,我们还要了解另一个和BeanFactory相似的名词FactoryBean。 从名字就可以看出,一个的本质是Factory,另一个的本质是Bean。 我们会从文档、小例子和实际应用讲清楚FactoryBean。 documentation /* * Interface to be im...

weixin_43810802的博客 668

DLMS—Cryptographic algorithms—(Green-Book)加密算法

密码学是数学的一个分支,基于数据的转换,并且可以用来提供多种安全服务:保密性、数据完整性、认证、授权和不可否认性。密码学依赖于两个基本组成部分:算法(或密码学方法)和密钥。算法是一个数学函数,而密钥是在转换过程中使用的参数。密码算法和密钥用于对数据应用密码保护(例如,加密数据或生成数字签名),以及移除或检查保护(例如,解密加密的数据或验证数字签名)。密码哈希函数:这类函数不需要密钥(尽管它们可以以使用密钥的模式使用)。哈希函数通常用作算法的一个组成部分,以提供安全服务。见9.2.3.2节。对称密钥算法。

一个bug是bug,多个bug能work 1711

4×V100部署Qwen3.8-Flash-Next:vLLM/GGUF实战

大模型本地部署的核心,是把参数量、量化精度、显存容量和推理框架放在同一张账本里算清楚。MoE 模型总参数量大但激活参数少,解码阶段更受显存带宽与 KV Cache 限制;通过 INT4/AWQ 或 GGUF 等 4-bit 量化可显著压缩权重占用,再结合 vLLM 张量并行、llama.cpp 分层切分提升多卡利用率。其技术价值在于让 V100 这类老架构 GPU 也能承载百亿级参数模型的私有化推理,并服务于 RAG 知识库、工作流 API、批量生成等场景。这次围绕 4×V100 32G 部署 Qwen3.

weixin_29061425的博客 353

java全家桶之61:spring factrorybean使用例子

Spring 的接口用于封装复杂对象的创建逻辑,允许开发者通过编程方式定制 Bean 的实例化过程。以下是。

leijmdas的专栏 422

实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

本文通过ABS通讯丢失故障触发、判定条件Simulink模型的搭建和仿真的讲解,介绍了一种控制器CAN通讯丢失故障判定的方法和建模方法,希望能给相关技术人员带来一定参考和帮助。

qq_43011586的博客 3686

【Springboot知识】springboot进阶-扩展接口的实现样例

springboot常见bean接口实现

wendao76的专栏 1383

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

AI Agent开发第49课-DIFY让AI自动预约排班后发企业微信通知-MongoDb-Redis-企业微信调用

我们的Dify会讲得很透彻,坚持喂饭级教程,从一个基本的AI自动预约客户到自动记录客户的信息再到自动判断下一步如何走全部是AI化的,这是一个真正的AI原生应用,它来自于我的一个大型物业公司用AI自动预约系统中的一部分。我们会使用这个预约流做完整的Dify例子来讲完,因为它太有代表性了。工作流中的控制反转、AI决策下一步怎么走、人为干涉、用户行为判断、外部中间件如Redis,今天我们就要讲到在Dify中调用MongoDB的数据以及企业微信通知来作为预约派单的最后一步了。

打造全国最全的AI Agent开发知识领域的博客 1756

spring源码分析之FactoryBean

一般情况下,我们spring采用反射来实例化对象,可是spring也提供了另一种方式,既通过实现FactoryBean来描述bean的实例化过程。 FactoryBean的描述 public interface FactoryBean<T> { T getObject() throws Exception; Class<?> getObjectType(); b...

索隆有几把刀的博客 174

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 150

【Spring学习】FactoryBean的使用

FactoryBean 接口对于 Spring 框架来说占有重要的地位,Spring 自身就提供了 70 多个FactoryBean 的实现。它们隐藏了实例化一些复杂 bean 的细节,给上层应用带来了便利。一般情况下,Spring 通过反射机制利用 bean 的 class 属性指定实现类来实例化 bean。在某些情况下,实例化 bean 过程比较复杂,如果按照传统的方式,则需要在中提供大量的配置信息,配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案。

qq_43783527的博客 3159

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

spring-FactoryBean的作用和使用场景,以及和BeanFactory的区别

BeanFactory和FactoryBean的区别、FactoryBean的作用

weixin_37862824的博客 9463

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring中FactoryBean的使用

本文主要介绍什么是FactoryBean技术?为什么使用FactoryBean?使用FactoryBean的好处?目前优秀的框架有哪些用到了FactoryBean? 1. FactoryBean的介绍: FactoryBean从字面意思上理解是工厂bean,他可以生成某一个类型Bean实例,它最大的一个作用是:可以让我们自定义Bean的创建过程。 一...

qq_35634181的博客 3284

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

FactoryBean的使用方法及作用

FactoryBean 的使用方法 自定义 MyFactoryBean ,只需要实现 FactoryBean 接口即可 package com.jack.factoryBean; @Component public class MyFactoryBean implements FactoryBean&lt;MyService&gt; { @Override public MyService...

InterfaceJ的博客 5113

Spring - FactoryBean 的使用场景和源码

FactoryBean 就是 生产 Bean 的 Bean 它的目的就是创建一个对象 示例1一个简单的例子 创建FactoryBean获取创建的对象 FactoryBean 就是 让我们自己 来创建一个对象 但是就像上面的例子中那样, 如果你那样使用,FactoryBean是没有多大的好处 什么时候使用? 问题就在这里, 如果这里的创建步骤特别复杂,或需要计算后 才能得到一个对象。就可以使用 示例2 根据指定数据创建对象 当创建对象的过...

深度 9640

BeanFactory和FactoryBean的区别

区别: https://liayun.blog.youkuaiyun.com/article/details/110391066 BeanFactory是个Factory,也就是IOC容器或对象工厂, 而FactoryBean就是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。 但对FactoryBean而言,这个Bean不是简单的Bean,FactoryBean是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似。 Fac

weixin_45723046的博客 1万+

FactoryBean的使用

FactoryBean的用法 在某些情况下,实例化bean过程比较复杂,如果还是采用配置的方法, 需要在中提供大量的配置信息,配置方式的灵活性是受限的, 这时采用编码的方式可能会得到一个简单的方案。 Spring为此提供了一个FactoryBean的工厂类接口,用户可以通过实现该接口定制实例化bean的逻辑。 public interface FactoryBean<T> { T getObject() throws Exception; Class<?> get

wsdfym的博客 856

【Spring】IOC&DI:FactoryBean 使用场景及源码分析

在Spring中,有两个很容易混淆的类:BeanFactory 和 FactoryBean。 BeanFactory:Bean 工厂,是一个工厂(Factory),我们 Spring IOC 容器的最顶层接口就是这个BeanFactory,它的作用是管理 Bean,即实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 FactoryBean:工厂Bean,是一个 Bean,作用是产生其他 bean实例。通常情况下,这种Bean没有什么特别的要求,仅需要提供一个工厂方法,该方法用来返回其他 Bean

A minor 3922

spring中FactoryBean的使用

spring中FactoryBean的使用 一 源码中的说明 If a bean implements this interface, it is used as a factory for an object to expose, not directly as a bean instance that will be exposed itself. 翻译:如果一个bean实...

shining的专栏 608

Spring框架中FactoryBean的使用

本文全面介绍了Spring框架中的FactoryBean接口及其应用。FactoryBean是一种特殊的Bean,用于创建和管理其他Bean实例,通过实现getObject()、getObjectType()和isSingleton()方法封装复杂对象的创建逻辑。文章详细对比了FactoryBean与BeanFactory的区别,分析了FactoryBean在Hibernate集成、AOP代理等场景中的优势,并提供了XML和Java两种配置方式的实现示例。

持续输出Java相关知识 1334

Spring FactoryBean特性和使用

接口是Spring IoC容器实例化逻辑的可插拔性点。用于配置复杂的Bean对象,可以将创建过程存储在的getObject方法!返回此工厂创建的对象的实例。该返回值会被存储到IoC容器!如果此返回单例,则返回true,否则返回false。此方法的默认实现返回true(注意,lombok插件使用,可能影响效果)。Class<?: 返回方法返回的对象类型,如果事先不知道类型,则返回null。

weixin_44201223的博客 706

如何使用Spring FactoryBean?

1.概述   Spring bean容器中有两种bean:普通bean和工厂bean。Spring直接使用前者,而后者自身可以生成由框架管理的对象。 简单地说,我们可以通过实现org.springframework.beans.factory.FactoryBean接口来构建一个工厂bean 。   2.工厂Bean基础   2.1实现一个FactoryBean 首先看

InkGenius 3172

浅析 Spring 中 FactoryBean 的实现与使用

FactoryBean是Spring容器中用于定制化对象创建的核心接口(org.springframework.beans.factory.FactoryBean),其设计体现了两个关键特征: 工厂模式:通过getObject()方法动态生成目标对象 容器托管:FactoryBean本身作为Spring Bean被容器管理,支持依赖注入和生命周期回调

qq_45464560的博客 1252
上一篇: 认识 Conductor
下一篇: kubenetes之deploy.yaml——kind
五之
博客等级 码龄15年 257粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五之

真实案例以及商业项目技术

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值