• 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
    • 实例演示:

    • 静态工厂版:
    • 构造工厂类
    • 配置好配置文件
    • 测试成功
    • 实例工厂版:
    • 构造工厂类
    • 配置好配置文件
    • 测试发现之前的静态也一同执行了(因为加载配置文件把之前的也加载了)
    • 注释掉之前静态的配置再测试测试成功
  • 相关阅读:
    MySQL:索引知识点盘点
    CSS3选择器(详细!全!)
    好看到爆炸的弹窗公告源码
    JS高级:闭包的缺点即解决
    景区住宿门票小程序开发解决方案
    SDUT PTA 图论
    面试官问Spring 启动流程,把这篇文章甩给他!
    JAVA Web项目开发1.3(第一天)
    c语言11周(16~20)
    SAP入门到放弃系列之QM物料主数据&检验类型设置
  • 原文地址:https://blog.csdn.net/weixin_59624686/article/details/126533543