【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比较常用。

相关推荐
二月夜2 小时前
剖析Java正则表达式回溯问题
java·正则表达式
xuhaoyu_cpp_java3 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
程序员二叉3 小时前
【Java】集合面试全套精讲|HashMap/ArrayList高频考点完整版
java·面试·哈希算法
cfm_29144 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
心之伊始4 小时前
LangChain4j RAG 实战:Java 后端如何把本地文档接入 Embedding 检索链路
java·架构·源码分析·csdn
许彰午4 小时前
17_synchronized关键字深度解析
java·开发语言
阿正的梦工坊5 小时前
【Rust】02-变量、不可变性与基础类型
开发语言·后端·rust
Xzh04236 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
我叫黑大帅6 小时前
通过php 中的Route:: 的写法了解什么是静态类调用
后端·面试·php
JS菌6 小时前
AI Agent 沙箱双层防护体系:从权限过滤到内核隔离的完整实现
前端·人工智能·后端