Spring 使用FactoryBean创建Bean

一、准备工作

1、导入spring-context依赖


    org.springframework
    spring-context
    5.2.22.RELEASE

2、创建实体类Color

public class Color {

}

二、使用FactoryBean

1、创建ColorFactoryBean

import org.springframework.beans.factory.FactoryBean;

public class ColorFactoryBean implements FactoryBean {

    @Override
    public Color getObject() throws Exception {
        return new Color();
    }

    @Override
    public Class getObjectType() {
        return Color.class;
    }

    @Override
    public boolean isSingleton() {
        // 返回true为单例模式,否则每次都是调用getObject()方法
        return true;
    }

}

2、创建BeanConfig配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class BeansConfig {

    @Bean
    public ColorFactoryBean colorFactoryBean(){
        return new ColorFactoryBean();
    }

}

3、开始测试

public static void main(String[] args) {
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeansConfig.class);
    Object colorFactoryBean = context.getBean("colorFactoryBean");
    System.out.println(colorFactoryBean);
    // 控制台打印的是Color对象,而不是ColorFactoryBean
    Object colorFactoryBean2 = context.getBean("&colorFactoryBean");
    System.out.println(colorFactoryBean2);
    // 通过& + name的方式获取bean,可以获取到ColorFactoryBean
}

三、总结分析

本章主要学习了,使用FactoryBean创建Bean。《参考资料》

你可能感兴趣的:(java,spring,FactoryBean)