FactoryBean

news/2024/4/23 21:51:30/文章来源:https://blog.csdn.net/weixin_52385232/article/details/128423337

FactoryBean

①简介

FactoryBeanSpring提供的一种整合第三方框架的常用机制。和普通的bean不同,配置一个FactoryBean类型的bean在获取bean的时候得到的并不是class属性中配置的这个类的对象,而是getObject()方法的返回值。通过这种机制,Spring可以帮我们把复杂组件创建的详细过程和繁琐细节都屏蔽起来,只把最简洁的使用界面展示给我们。

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

将来我们整合Mybatis时,Spring就是通过FactoryBean机制来帮我们创建SqlSessionFactory对象的。

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//package org.springframework.beans.factory;import org.springframework.lang.Nullable;public interface FactoryBean<T> {String OBJECT_TYPE_ATTRIBUTE = "factoryBeanObjectType";@NullableT getObject() throws Exception;@NullableClass<?> getObjectType();//所提供的对象是否为单例default boolean isSingleton() {return true;}
}

②创建类UserFactoryBean

public class UserFactoryBean implements FactoryBean<User> {public User getObject() throws Exception {return new User();}public Class<?> getObjectType() {return User.class;}
}

③配置bean

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean class="com.atguigu.spring.factory.UserFactoryBean"></bean></beans>

④测试

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

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

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

相关文章

教室管理系统

开发工具(eclipse/idea/vscode等)&#xff1a;idea 数据库(sqlite/mysql/sqlserver等)&#xff1a;mysql 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 关于这个系统的具体功能主要包括教师&#xff0c;学生&#xff0c;课程&#xff0c;教室还有班级这几个实体。…

m基于GNN图神经网络的目标匹配分析matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在一些应用领域数据可以自然而然地表示成图结构&#xff0c;包括 蛋白质组学&#xff0c;图像分析&#xff0c;场景描述 &#xff0c;软件工程&#xff0c;和自然语言处理。最简单的图结构包括单…

【SwinTransformer】GitHub源码,main.py,swin_transformer.py...

声明:仅学习使用~ “我们抬头便看到星光,星星却穿越了万年”。 Contents 数据与环境配置解读main.pyswin_transformer.py数据与环境配置解读 来看 SwinTransformer 的github官网。已经开源了。(想不到在家里居然可以直接上GItHub,真好啊!) 进去后可以看到如下界面: I…

CentOS7迷你版安装Redis并配置基础信息

1. 安装gcc、wget依赖 yum install gcc yum install wget 2. 使用命令&#xff1a;wget http://download.redis.io/releases/redis-6.2.5.tar.gz 下载安装包&#xff0c;注意要先cd到要下载到的目标位置&#xff09; 3. tar -zxvf redis-6.2.5.tar.gz 解压压缩包 4. cd redis-…

2023年企业固定资产管理怎么破局?

2022年已经在风雨中过去&#xff0c;转眼我们迎来了2023年。过去的一年&#xff0c;固定资产管理的痛依旧历历在目&#xff0c;如何让新的一年中&#xff0c;固定资产管理工作有所突破&#xff0c;不再承受固定资产资产管理的痛处&#xff0c;是每个企业管理者和企业固定资产管…

数字化时代,看商业智能BI与业务发展分析

每一家企业我们都可以从模式、问题和求解这三个角度对企业的业务经营管理进行探讨&#xff0c;比如模式&#xff0c;公司目前的管理模式和运营模式效果如何&#xff0c;是否符合公司长期战略目标或中短期业绩增长目标&#xff1f; 数据分析 - 派可数据商业智能BI可视化分析平台…

【Kotlin 协程】Flow 异步流 ⑥ ( 调用 Flow#launchIn 函数指定流收集协程 | 通过取消流收集所在的协程取消流 )

文章目录一、调用 Flow#launchIn 函数指定流收集协程1、指定流收集协程2、Flow#launchIn 函数原型3、代码示例二、通过取消流收集所在的协程取消流一、调用 Flow#launchIn 函数指定流收集协程 1、指定流收集协程 响应式编程 , 是 基于事件驱动 的 , 在 Flow 流中会产生源源不断…

数据改版 | CnOpenData中国工业企业基本信息扩展数据

CnOpenData中国工业企业基本信息扩展数据 一、数据简介 拉动中国经济的三个产业中&#xff0c;工业企业占有特殊的地位&#xff0c;是推动国内经济发展的重要产业。工业是最主要的物质生产部门&#xff0c;为居民生活、各行业的经济活动提供物质产品&#xff0c;这一重要作用是…

垃圾回收机制之v8引擎

v8的内存分配 &#xff08;栈&#xff08;执行环境&#xff09;跟堆&#xff09; 堆内存负责垃圾回收机制&#xff0c;只有新生代和老生代两部分 新生代&#xff1a;对等分的&#xff08;严格&#xff09; 老生代&#xff1a; 都是由新生代转变的&#xff08;连续的空间&…

截至2022年12月共计451个信息安全国家标准 汇总

写在前面 早年刚参加信息安全工作更多的学点皮毛技术&#xff0c;到处找安全工具&#xff0c;跟踪poc&#xff0c;拿到一个就全网扫一遍&#xff0c;从来没有想过&#xff0c;系统化的安全工作应该怎样搞?我做的工作在安全体系中处于哪个阶段? 后来有机会做企业安全建设&…

五、Kubernetes命令行工具 (kubectl)

1、概述 kubectl 是 Kubernetes 集群的命令行工具&#xff0c;通过 kubectl 能够对集群本身进行管理&#xff0c;并能 够在集群上进行容器化应用的安装部署。 2、语法 使用以下语法从终端窗口运行 kubectl 命令&#xff1a; kubectl [command] [TYPE] [NAME] [flags] 其中 …

数据仓库基础与Apache Hive入门

数据仓库基本概念 数据仓库&#xff0c;简称数仓&#xff0c;用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持。 数据仓库本身并不生产任何数据&#xff0c;其数据来源于不同的外部系统同时数据仓库自…

Adobe Acrobat XI 一进去就闪退;解决Acrobat的闪退问题

一、原因分析 闪退是因为网络中校验版权时出现问题 二、解决办法 域名欺骗&#xff0c;添加伪造的host条目 1. 进入C:\Windows\System32\drivers\etc 找到hosts文件 2. 右机hosts&#xff0c;选择属性&#xff0c;在安全选项里&#xff0c;点击高级&#xff1a; 3. 在ho…

C++——哈希

文章目录1. unorder无序1.1unordered_map文档介绍接口说明1.2 unordered_set2.哈希常见的哈希函数2.1 直接定址法--(常用)2.2 除留余数法--(常用)(1).闭散列——开方定址发&#xff08;已被淘汰&#xff09;a.线性探测——冲突越多效率越低。b.二次探测(2).开散列——拉链法/哈…

深入浅出synchronized关键字

前言 无论在日常工作还是面试过程中&#xff0c;synchronized关键字作为并发场景下的操作&#xff0c;是一定要掌握的&#xff0c;本文从synchronized的使用方式、原理及优化三个方面&#xff0c;对synchronized关键字作一个系统化的说明。 使用方式 synchronized主要有三种…

Java: static,final,代码块 的详解

Java: static&#xff0c;final&#xff0c;代码块 的详解 每博一文案 山本文绪说过这样一句话&#xff1a;哪些决定放弃了的事&#xff0c;就请放弃得干干净净。哪些决定再也不见面的人&#xff0c;就真 的不要再见面了&#xff0c;不要再做背叛自己的事&#xff0c;如果想要…

操作手册(GB8567——88)基于协同的在线表格forture-sheet

操作手册&#xff08;GB8567——88&#xff09; 1引言 1.1编写目的 为了帮助用户更好的上手本系统&#xff0c;加快用户对forture-sheet在线表格的快速入门&#xff0c;本操作手册详细介绍使用forture-sheet的部分基础操作以及注意细节。 1.2前景 待开发系统的名称&#x…

ASP.NET开发的医疗健康咨询平台源码 养生知识咨询 寻根问药平台源码 C#源码

一、源码特点&#xff1a; 爱心医生健康知识门户网站是一个权威的医疗科普视频、语音、知识、医疗健康问答平台。 包含所有源代码和数据库&#xff0c;可以直接部署到IIS中使用。 二、菜单功能 网站页面&#xff1a; 1、首页&#xff1a;包含幻灯片。 2…

InnoDB详解2

文章目录InnoDB详解21 行格式1 Compact行格式详解1 变长字段长度列表&#xff08;两个字节&#xff09;2 NULL值列表&#xff08;1个字节&#xff09;3 记录头信息 &#xff08;重点&#xff09;2 Dynamic行格式2 页的上层结构InnoDB详解2 1 行格式 规定每条记录是怎么存储的…

解决资源消耗,top的运用记录

第一条命令uptime load average 后面的三个数字&#xff0c;分别代表1分钟、5分钟和15分钟内机器的平均负载 使用top命令解决负载问题 Cpu(s)这一行提供了CPU运行情况信息 这些缩写分别代表了不同含义 (1)us&#xff1a;用户CPU时间 运行非优雅的用户进程所占CPU时间的百…