4、Spring5-IOC容器-Bean管理-FactoryBean

bean的分类

1、Spring有两种Bean,一种是普通的Bean,另外一种是工厂FactoryBean

2、普通Bean:(自己创建的bean)在Spring的配置文件中,定义的bean类型就是返回的类型

//使用普通bean创建对象
public class MyBean {
}
<bean id="myBean" class="factoryBean.MyBean"></bean>

3、工厂Bean:在配置文件中定义Bean类型可以和返回的类型不一样

(1)第一步:创建一个类,让这个类作为一个工厂bean,实现接口FactoryBean 

(2)第二步:实现接口里面的方法,在实现方法中定义返回的bean类型

<bean id="myBean" class="factoryBean.MyBean"></bean>

 

public class MyBean implements FactoryBean<Course> {
    //定义返回Bean对象(加泛型):设置MyBean返回的对象是Course对象
    @Override
    public Course getObject() throws Exception {//配置文件中定义的返回值类型和得到的类型不一样,这个类型在getObject方法中定义
        Course course = new Course();
        course.setCname("abc");
        return course;
    }

    @Override
    public Class<?> getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return false;
    }
}

 测试类如下:

@Test
public void test3(){
  ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
  Course course = context.getBean("myBean", Course.class);
  System.out.println(course);
}

 

 在配置文件中配置的返回值类型为MyBean,但是得到的却是Course类型,FactoryBean的getObject()方法可以定义返回值的类型。

 

posted @ 2022-05-29 14:28  卓汶  阅读(21)  评论(0编辑  收藏  举报