【Spring】实现FactoryBean接口

news2024/12/23 22:19:42

FactoryBean

FactoryBean是一个接口,需要创建一个类来实现该接口,该接口中有三个方法,通过重写其中的两个方法,获得一个对象,三个方法分别是:

  • 1.getObject():通过一个对象交给IOC容器管理
  • 2.getObjectType():设置所提供对象的类型
  • 3.isSingleton():所提供的对象是否单例

当把FactoryBean的实现类配置为bean时,会将当前类中getObject()所返回的对象交给IOC容器管理

UserFactoryBean类:

public class UserFactoryBean implements FactoryBean<User> {
    @Override
    public User getObject() throws Exception {
        return new User();
    }

    @Override
    public Class<?> getObjectType() {
        return User.class;
    }
}

对应的bean配置:

    <bean class="com.zh.spring.factory.UserFactoryBean">

    </bean>

测试类:

public class FactoryBeanTest {
    @Test
    public void testFactory(){
        ApplicationContext ioc = new ClassPathXmlApplicationContext("spring-factory.xml");
        User user = ioc.getBean(User.class);
        System.out.println(user);

    }

 

实现FactoryBean接口,把UserFactoryBean配置给IOC容器这一过程省略了,只需要重写FactoryBean接口,实现里面的方法,就可以获得提供的对象和对象的类型,从而在bean中只需要配置UserFactoryBean,就可以对所提供的对象进行依赖注入等操作。

在后续的mybatis整合spring比较常用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DMA】如何保证 DMA 和 cache 的一致性

一方面&#xff0c;当 CPU 要从cache 读取数据时&#xff0c;会先检查cache是否命中&#xff0c;如果命中就直接返回&#xff0c;此时便不再访问内存&#xff1b;另一方面&#xff0c;DMA 在 向内存写入数据。这样一来就造成了DMA 传输的内容和cache中缓存的内容不一致。 DMA 向…

【ztree应用】基于jquery实现带检索功能的ztree文件夹折叠效果(附源码下载)

文章目录 写在前面涉及知识效果展示1、搭建dom2、引入ztree和jquery3、实现搜索功能及调用4、源码分享1&#xff09;百度网盘2&#xff09;123云盘3&#xff09;邮箱留言 总结 写在前面 前些日子&#xff0c;领导要求做一个关于数据库管理的工具&#xff0c;主要想支持一些批量…

根文件系统制作

1.官网下载工具 制作工具&#xff1a;busybox https://busybox.net/downloads/ 2.制作根文件系统 2.1准备工作 a.把压缩包放在FSP1M目录下&#xff0c;并解压 2.2正式开始 2.2.1配置交叉编译工具链 1. 打开Makefile文件 2. 修改ARCH &#xff1f;$(SUBARCH) &#xf…

抑郁症与肠道微生物群有何关联

谷禾健康 抑郁症肠道菌群 当一个人面临抑郁症时&#xff0c;一切看似平常的事都会变得很有挑战性。上班、与朋友社交&#xff0c;甚至只是起床都感觉很困难。 抑郁症是如今已是世界上最普遍的精神障碍之一&#xff0c;一直是心理学和医学领域的研究热点。抑郁症是一种需要预防和…

Android监听电量变化广播(动态广播代码)

activity_main.xml中 <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent&quo…

华为云Classroom赋能—TooKit助力开发者上云

对于资深程序员而言&#xff0c;IDE是必不可少的&#xff0c;它好比是剑客手中的宝剑&#xff0c;IDE帮助程序员更快更丝滑的去编程&#xff0c;同时插件就是这把剑上的各种Buff&#xff0c;为宝剑赋能&#xff0c;提供更好的升级打怪体验。 什么是Huawei Cloud Toolkit Huaw…

预测赢家(力扣)dfs + 备忘录 JAVA

给你一个整数数组 nums 。玩家 1 和玩家 2 基于这个数组设计了一个游戏。 玩家 1 和玩家 2 轮流进行自己的回合&#xff0c;玩家 1 先手。开始时&#xff0c;两个玩家的初始分值都是 0 。每一回合&#xff0c;玩家从数组的任意一端取一个数字&#xff08;即&#xff0c;nums[0]…

售价18-25万元:比亚迪海豹DM-i预定价格公布,新一代主流轿车?

比亚迪海豹DM-i&#xff0c;全新一代主流中型轿车&#xff0c;已从7月19日起开始大规模生产。 此款汽车的目标市场是挑战传统中型轿车领域&#xff0c;预计售价区间为18-25万元&#xff0c;并计划于第三季度正式投放市场。官方宣称&#xff0c;这款混合动力轿车是同级别中仅有…

《Zookeeper》源码分析(四)之ServerCnxnFactory的启动过程

目录 ServerCnxnFactory1. 创建ServerCnxnFactory2. 配置属性configure()3. 启动start() ServerCnxnFactory Zookeeper使用ServerCnxnFactory管理与客户端的连接&#xff0c;服务端每与一个客户端就会创建一个ServerCnxn实例并由ServerCnxnFactory管理&#xff0c;ServerCnxnF…

SAP MM学习笔记15-物料调达中的Master数据(3)-购买情报

SAP中做一个购买发注的时候&#xff0c;涉及到以下Master数据&#xff1a; 1&#xff0c;仕入先Master&#xff08;供应商&#xff09;&#xff1a;跟谁买 2&#xff0c;品目Master&#xff08;物料&#xff09;&#xff1a;买什么 3&#xff0c;购买情报&#xff1a;什么价…

[C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...

在前四篇文章中, 我们实现了从文档文件的清理 到 搜索的所有内容: 项目背景: &#x1fae6;[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: &#x1fae6;[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…

【使用基于二阶积分器的结构生成正交信号】基频共振而无延迟地滤波信号的正交信号生成模块,为单相系统创建 α/β 信号(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Nacos本地部署-开发使用

有些项目&#xff0c;需要在本地启动nacos&#xff0c;否则会与其他开发人员产生冲突&#xff0c;这里是写给该场景下的开发人员使用的文档 一、如何本地部署和使用 Nacos 1.下载编译后的压缩包 可以在 github 上 Nacos Release 版本列表中下载最新的稳定版本。地址&#xf…

用Shap-E生成3D模型

Shap-E 是 OpenAI 开发的突破性模型&#xff0c;它使用文本或图像作为输入生成一系列 3D 对象&#xff0c;以其创新方法改变了 3D 应用领域。 这项非凡的技术可以在 GitHub 上免费获取&#xff0c;允许用户在计算机上无缝运行它&#xff0c;而无需 OpenAI API 密钥或互联网连接…

AAAI论文阅读

文章目录 Open-Vocabulary Multi-Label Classifcation via Multi-Modal Knowledge Transfer——知识蒸馏的范畴Med-EASi: Finely Annotated Dataset and Models for Controllable Simplifcation of Medical Texts——医学领域数据集构建“Nothing Abnormal”: Disambiguating M…

测试数据不会造?可以用这个工具Faker

在测试过程中&#xff0c;大家应该都遇到过各种各样的数据构造问题。e.g. 构造一批通讯录、构造一批用户三要素(姓名手机号身份证)、构造一批银行卡数据…… 这时候&#xff0c;测试数据大多数可能是这样的: 张三, 130 0000 0001 李四, 130 0000 0002 王五, 130 0000 0003 …

Scons编译lib库

实例目录结构&#xff1a; include文件夹&#xff1a;test.hsrc文件夹&#xff1a;test.cSConscriptSConstruct 如下图所示&#xff1a; SConstruct&#xff1a; #执行当前目录下的SConscript SConscript(SConscript);SConscript&#xff1a; import os from SCons.Script…

模拟实现消息队列项目(系列6) -- 网络通信协议的设计

目录 前言 1. 明确需求 2. 设计应用层协议 2. 定义Request 和 Response 3. 定义参数的父类 4. 定义其他参数类 4.1 创建交换机 4.2 删除交换机 4.3 创建队列 4.4 删除队列 4.5 创建绑定 4.6 删除绑定 4.7 发布消息 4.8 订阅消息 4.9 推送消息 结语 前言 上一章节,我们完成了虚拟…

实现栈和队列

文章目录 1.栈 1.1 栈的概念及结构 1.2 栈的实现 实现栈的标识索引 数组实现栈 栈的结构定义 栈空间数据的初始化和销毁 入栈和出栈 获取栈顶元素、计算栈空间元素个数、判空 2.队列 2.1 队列的概念及结构 2.2 链表的实现 实现链表的标识索引 链表实现队列 定…

JavaScript基础 第一天

本套笔记是通过学习B站Pink老师JavaScript核心进阶 前端必学总结的学习笔记&#xff0c;希望自己之后在使用的过程中能够将所学知识融会贯通 学习目标 1. 理解变量是存储数据的容器 2.理解什么是数据并知道数据的类型 3.知道JavaScript数据类型转换的特征 学习目录 1.Jav…