【Spring】实现FactoryBean接口

FactoryBean

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

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

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

UserFactoryBean类:

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

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

对应的bean配置:

XML 复制代码
    <bean class="com.zh.spring.factory.UserFactoryBean">

    </bean>

测试类:

java 复制代码
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比较常用。

相关推荐
DavidSoCool15 小时前
Spring AI Alibaba ReactAgent 调用Tool 实现多轮对话
java·人工智能·spring·多轮对话·reactagent
请你喝可乐15 小时前
AI Agent Skill 高阶使用指南:从入门到精通
后端
用户9623779544815 小时前
代码审计 | Struts2 —— S2-016 OGNL 注入原理
后端
神所夸赞的夏天15 小时前
如何获取多层json数据,存成dictionary,并取最大最小值
java·前端·json
9号达人15 小时前
为什么你应该在 MQ 里用多个消费者,而不是一个
java·后端·架构
焦糖玛奇朵婷15 小时前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
小新同学^O^15 小时前
简单学习 --> TCP协议
java·网络·tcp
阿星做前端16 小时前
重度 AI 编程用户的一天:我怎么把 Claude Code / Codex 工作流搬进浏览器工作台
前端·javascript·后端
月落归舟16 小时前
深入理解Java适配器模式,彻底搞懂设计思想
java·开发语言·适配器模式
Mr_pyx16 小时前
【LeetHOT100】二叉树的中序遍历——Java多解法详解
java·开发语言·深度优先