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

相关推荐
AskHarries9 分钟前
做国内还是出海
后端
J2虾虾15 分钟前
Spring AI Alibaba文档
java·人工智能·spring
YikNjy21 分钟前
break和continue
java·开发语言·算法
SomeOtherTime22 分钟前
Geojson相关(AI回答)
java·前端·python
日月云棠34 分钟前
10 Integer —— 最常用的整数包装类深度解析
java·后端
大鸡腿同学38 分钟前
大模型为何总 “胡说八道”?做完 RAG 知识库,我看懂了它的底层逻辑
后端
秋938 分钟前
java项目中cpu飙升排查及解决方法
java·开发语言
野生技术架构师39 分钟前
牛客网2026最新大厂Java高频面试题精选(附标准答案)
java·开发语言
PH = 742 分钟前
JAVA的SPI机制
java·开发语言
一 乐43 分钟前
高校实习信息发布网站|基于Spring Boot的高校实习信息发布网站的设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·高校实习信息发布网站