• Spring-IOC配置-bean


    目录

    bean的基本配置

    实例演示:

    bean属性scope

    实例演示:

    bean的生命周期控制

    实例演示:

    静态工厂与实例工厂创建bean

    实例演示:


    • bean的基本配置

    • bean
    • 类型:标签
    • 归属:beans标签
    • 作用:定义spring中的资源
    • 受此标签定义的资源将受到spring控制
    • 格式:
    •    
    • 基本属性:
    • id:bean的名称,通过id值获取bean
    • class:bean的类型
    • name:bean的名称,可以通过name值获取bean,用于多人配合时给bean起别名
    • 实例演示:

    • bean属性scope

    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean的作用范围
    • 格式:
    • 取值:
    • singleton:(默认)
    • 设定创建出的对象保存在spring容器中,是一个单例的对象
    • prototype:
    • 设定创建出的对象保存在spring容器中,是一个非单例的对象
    • request、session、application、websocket:
    • 设定创建出的对象放置在web容器对应的位置
    • 实例演示:

    • 使用singleton时,只创建一次对象
    • 是在加载容器时创建
    • 使用prototype时,在获取对象时创建对象,获取一次创建一次
    • bean的生命周期控制

    • 名称:init-method,destroy-method
    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean对象在初始化或销毁时完成的工作
    • 格式
    • 取值:bean对应的类中对应的具体方法名
    • 实例演示:

    • singleton:(默认)版
    • prototype:版
    • 为啥destroy没有出现
    • destroy操作其实是运行了的
    • 但是程序结束时,虚拟机已经退了,还没来得及释放资源就已经结束了
    • 所以看不到
    • 通过在虚拟机结束前,强制把容器关了就能看到了(记得把ApplicationContext改为ClassPathXmlApplicationContext)
    • 使用prototype;destroy没有出现
    • 因为当spring配置的是非单例对象时,它不归spring容器进行管理,没放在容器中
    • spring只是帮它new了一下
    • 所以关容器和它没有关系
    • 使用singleton:(默认),destroy出现
    • 静态工厂与实例工厂创建bean

    • 静态工厂版:
    • 名称:factory-bean
    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean对象创建方式
    • 使用静态工厂的形式创建bean,兼容早期遗留系统的升级工作
    • 格式
    • 取值:工厂bean中用于获取对象的静态方法名
    • 注意事项
    • class属性必须配置成静态工厂的类名
    • 实例工厂版:
    • 名称:factory-bean,factory-method
    • 类型:属性
    • 归属:bean标签
    • 作用:定义bean对象创建方式
    • 使用实例工厂的形式创建bean,兼容早期遗留系统的升级工作
    • 格式
    • 取值:工厂bean中用于获取对象的实例方法名
    • 注意事项
    • 使用实例工厂创建bean首先需要将实例工厂配置bean,交由spring进行管理
    • factory-bean是实例工厂的beanId
    • 实例演示:

    • 静态工厂版:
    • 构造工厂类
    • 配置好配置文件
    • 测试成功
    • 实例工厂版:
    • 构造工厂类
    • 配置好配置文件
    • 测试发现之前的静态也一同执行了(因为加载配置文件把之前的也加载了)
    • 注释掉之前静态的配置再测试测试成功
  • 相关阅读:
    OC-NSArray
    HCIA HYBRID端口
    【性能基石之IO~~~Linux操作系统相关知识体系补充&虚拟文件系统&文件描述符&PageCache内核缓存页】
    如何看待现在的面试变成了八股文
    【明年找到好工作】:面试题打卡第一天
    Ribbon本地实现负载均衡
    SpringCloudGateway--谓词(断言)
    【论文阅读】HTTP 流量和恶意 URL 的异常检测
    [2023年]-hadoop面试真题(三)
    ucos iii 任务栈使用率统计方法
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/126533543