Bean

本文详细介绍了Spring框架中的Bean,包括普通Bean与工厂Bean的区别。工厂Bean在配置中定义的类型与返回类型不同,主要用于创建复杂对象。此外,还探讨了Bean的作用域,如默认的单例(singleton)和原型(prototype)模式,以及它们在对象创建时间上的差异。最后,阐述了Bean的完整生命周期,包括构造、属性设置、初始化方法调用和销毁方法的执行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 工厂Bean

Spring中有两种Bean,一种为普通Bean,另一中为工厂Bean

1.1 普通Bean

在配置文件中定义bean类型就是返回类型

1.2 工厂Bean

工厂bean在配置文件中定义的bean类型和返回类型不同

  1. 创建类,作为工厂bean,实现接口FactoryBean

    public class MyFactoryBean implements FactoryBean<User> {
    
        @Override
        public User getObject() throws Exception {
            User user = new User();
            user.setId("1");
            return user;
        }
    
        @Override
        public Class<?> getObjectType() {
            return null;
        }
    }
    
  2. 实现接口的方法,在实现的方法中定义返回的类型

    <bean id="myBean" class="com.yang.pojo.MyFactoryBean"></bean>
    

2. Bean的作用域

2.1 单例对象

Spring中默认的bean是单例对象

image-20210201195757211

2.2 多例对象

在bean的scope属性设置为prototype即变为多例对象

image-20210201195910764

2.3 两者区别

  • singleton单实例,prototype 多实例
  • 设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象
  • 设置scope值是prototype时候,不是在加载spring 配置文件时候创建对象,在调用getBean方法时候创建多实例对象。

3. Bean的生命周期

生命周期:对象创建到销毁的过程

  1. 通过构造器创建bean实例(无参数构造)
  2. 为bean的属性设置值和对其他bean引用(调用set方法)
  3. 调用bean的初始化的方法(需要进行配置初始化的方法)
  4. bean可以使用了(对象获取到了)
  5. 当容器关闭时候,调用bean的销毁的方法(需要进行配置销毁的方法)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值