IOC——Bean管理:管理工厂Bean(FactoryBean)

学习之前,好图分享

请添加图片描述

Spring 有两种类型的Bean,一种普通Bean,另外一种是工厂Bean(FactoryBean)
1:普通Bean:在配置文件中定义bean类型就是返回的类型
讲解普通bean链接
链接一:Spring—IOC(基本原理)(IOC基于XML注入需要的属性)
链接二:Spring框架Bean管理:在XML配置文件的基础上向类中注入属性(对创建的类属性进行框架版的赋值)
2:工厂Bean:在配置文件定义bean类型可以和返回类型不一样。
链接以和链接二已经介绍了普通bean,接下来我们来学习一下工厂bean

工厂bean的实现
一:创建一个普通类,通过工厂bean往这个普通类注入属性值

public class stu {
    private String mm;              //在普通类创建一个属性,并生成它的set方法,接下来实现的是通过工厂bean来调用此类中的set方法往mm属性注入值

    public void setMm(String mm) {
        this.mm = mm;
    }

    @Override
    public String toString() {          //这里重写一下tostring方法可以使注入的属性值有效的输出
        return "stu{" +
                "mm='" + mm + '\'' +
                '}';
    }
}

二:创建类,让这个类作为工厂bean,去实现接口FactoryBean,而且重写此接口中的方法
注意:此接口有三种方法在这里只需要使用第一种 getobject()这种方法,需要什么类属性的返回值就定义类属性的getobject()

import org.springframework.beans.factory.FactoryBean;

public class demo1 implements FactoryBean<stu> {   //通过类去实现工厂bean,这里的stu是一个类,需要返回的类型

    @Override
    public stu getObject() throws Exception {
        stu dd = new stu();
        dd.setMm("我是你爸爸");
        return dd;
    }

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

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

三:配置xml文件

<?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="d1" class="new_study.java_file.factorybean.demo1">

    </bean>
</beans>

四:通过测试类去看看往基础类stu注入的属性值

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testdemo {
    @Test
    public  void think(){
        ApplicationContext context = new ClassPathXmlApplicationContext("new_study/java_file/factorybean/bean.xml");
        stu da = context.getBean("d1",stu.class);
        System.out.println(da);
    }
}

输出结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想睡醒的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值