[Spring5]IOC容器_Bean管理_工厂Bean

Posted 唐火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Spring5]IOC容器_Bean管理_工厂Bean相关的知识,希望对你有一定的参考价值。

IOC操作Bean管理(FactoryBean)

1.Spring有两种类型bean,一种普通bean,另外一种工厂bean(FactoryBean)

2.普通bean:在配置文件中定义bean类型就是返回类型

3.工厂bean:在配置文件定义bean类型可以和返回类型不一样

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

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

package com.atguigu.spring.collectiontype;

public class Course 
    private String cname;

    public void setCname(String cname) 
        this.cname = cname;
    


package com.atguigu.spring.factoryBean;

import com.atguigu.spring.collectiontype.Course;
import org.springframework.beans.factory.FactoryBean;

public class MyBean implements FactoryBean<Course> 

    //定义返回bean
    @Override
    public Course getObject() throws Exception 
        Course course = new Course();
        course.setCname("abc");
        return course;
    


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

    @Override
    public boolean isSingleton() 
        return false;
    


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id = "myBean" class = "com.atguigu.spring.factoryBean.MyBean">

    </bean>

</beans>

测试:

package com.atguigu.spring.test;

import com.atguigu.spring.collectiontype.Book;
import com.atguigu.spring.collectiontype.Course;
import com.atguigu.spring.factoryBean.MyBean;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testBook 


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



以上是关于[Spring5]IOC容器_Bean管理_工厂Bean的主要内容,如果未能解决你的问题,请参考以下文章

[Spring5]IOC容器_Bean管理XML方式_自动装配

[Spring5]IOC容器_Bean管理XML方式_p名称空间注入

[Spring5]IOC容器_Bean管理_bean的作用域和bean的生命周期

[Spring5]IOC容器_Bean管理XML方式_注入其他类型属性

[Spring5]IOC容器_Bean管理XML方式_外部属性文件

[Spring5]IOC容器_Bean管理注解方式_完全注解开发