当前位置: 首页 > article >正文

spring:继承接口FactoryBean获取bean实例

spring框架提供接口FactoryBean获取bean实例。

实现步骤:

实现接口FactoryBean。

在xml文件中配置实现接口FactoryBean的类。

调用接口FactoryBean中方法getObject,获取bean实例。

 实现接口类

package com.itheima.factory;import org.springframework.beans.factory.FactoryBean;import com.itheima.dao.interfaces.InterfaceUserDao;
import com.itheima.dao.impl.UserDaoImpl;/*** @copyright 2003-2024* @author    qiao wei* @date      2024-12-24* @version   1.0* @brief     继承接口FactoryBean。通过方法getBean获取Bean,时是延迟调用。* @history   name*            date*            brief*/
public class MyBeanFactory03 implements FactoryBean<InterfaceUserDao> {public MyBeanFactory03() {}@Overridepublic InterfaceUserDao getObject() throws Exception {System.out.println("继承接口FactoryBean");return new UserDaoImpl();}@Overridepublic Class<?> getObjectType() {return null;}@Overridepublic boolean isSingleton() {return FactoryBean.super.isSingleton();}
}

xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsd"><!--  --><bean id="myUserDao03"class="com.itheima.factory.MyBeanFactory03"></bean>
</beans>

测试调用

package com.itheima.factory;import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.itheima.dao.interfaces.InterfaceUserDao;/*** @copyright 2003-2025* @author    qiao wei* @date      2025-04-05* @version   1.0* @brief     继承接口FactoryBean。在读取配置文件时不创建Bean实例。在调用方法getBean时才创建Bean实例并返回。* @history   name*            date*            brief*/
class MyBeanFactory03Test {@Testpublic void test01() {// 读取配置文件,创建容器,未创建Bean实例。ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext("/xml/factory/myBeanFactory03.xml");// 通过方法getBean获取Bean实例时,才创建Bean实例。InterfaceUserDao userDao = (InterfaceUserDao) context.getBean("myUserDao03");userDao.print();}
}

http://www.lryc.cn/news/2403791.html

相关文章:

  • 字符串字典序最大后缀问题详解
  • VScode打开后一直显示正在重新激活终端 问题的解决方法
  • pe文件结构(TLS)
  • 二进制安全-OpenWrt-uBus
  • 分页查询的实现
  • 中型零售业数据库抉择:MySQL省成本,SQL SERVER?
  • 使用 Windows 完成 iOS 应用上架:Appuploader对比其他证书与上传方案
  • IDEA中的debug使用技巧
  • RockyLinux9.6搭建k8s集群
  • MS358A 低功耗运算放大器 车规
  • AI IDE 正式上线!通义灵码开箱即用
  • CRMEB 中 PHP 快递查询扩展实现:涵盖一号通、阿里云、腾讯云
  • Ubuntu20.04基础配置安装——系统安装(一)
  • ubuntu opencv 安装
  • 使用Python和Flask构建简单的机器学习API
  • Kafka入门-消费者
  • [论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
  • 中电金信:从智能应用到全栈AI,大模型如何重构金融业务价值链?
  • 巴西医疗巨头尤迈Kafka数据泄露事件的全过程分析与AI安防策略分析
  • 快速上手 Metabase:从安装到高级功能实战
  • 多区域协同的异地多活AI推理服务架构
  • Linux基础命令which 和 find 简明指南
  • 【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南
  • 思尔芯携手Andes晶心科技,加速先进RISC-V 芯片开发
  • kafka消息积压排查
  • drawio 开源免费的流程图绘制
  • YOLOv8 升级之路:主干网络嵌入 SCINet,优化黑暗环境目标检测
  • 传输层:udp与tcp协议
  • centos7.9源码安装zabbix7.12,求赞
  • 亚远景科技助力东风日产通过ASPICE CL2评估