美文网首页
Spring-IOC-2

Spring-IOC-2

作者: Joeyzz7000 | 来源:发表于2021-06-24 07:25 被阅读0次

    IOC基础

    • Inversion of controller 控制反转, 拥有对象创建的控制权与对象生命周期的管理权.

    BeanFactoryApplicationContext区别

    • BeanFactory容器是顶层接口,定义一些基础功能与基础规范, 而ApplicationContext 容器是高级接口也是BeanFactory的子接口.
    • ApplicationContext拥有更多的功能, 国际化、资源文件读取、类列表展示
    page45image2785904.png

    Bean的作用范围与生命周期

    • 作用范围与生命周期的关系, 作用范围决定了他的生命周期

    作用范围

    • singleton、property、request、session、application、websocket
    • singleton(单例模式)与property(多例模式)使用较多; singleton生命周期为程序启动时到结束、property生命周期为当其使用时创建新对象.
    Defaut) Scepes a singie bran detirition to a singfe objncs instance for each Spring loc contsine.png

    高级特性

    延迟加载

    • ApplicationContext在实例化的时候也会将singleton objects 提前实例化. 提前实例化意味着作为初始化的一部分. 如果不想让某一singleton object 提前被实例化, 可以标识为懒加载(lazy)
    • 开启延迟加载一定程度提高容器启动和运转性能
    • 对于不常使用的 Bean 设置延迟加载,这样偶尔使用的时候再加载,不必要从一开始该 Bean 就占 用资源

    FactoryBeanBeanFactory

    • FactoryBean生成某种类的工具类. 而BeanFactory是容器的顶级接口

    • spring中存在两种Bean, 普通Bean与FactoryBean

    • FactoryBean可以生成某一个类型的Bean实例(返回给我们)

    后置处理

    • 两种后置处理Bean的接口, BeanFactoryPostProcessor和BeanPostProcessor

    循环依赖

    • 循环引用, 也就是两个或两个以上的Bean互相持有对方, 最终形成闭环.
    • 构造器依赖与属性依赖; 构造器依赖是无法解决的, 只能抛出beanCurrentlyCreationException异常, 在解决这个循环依赖的问题时, spring采用的是提前暴露对象的方法. 通过三级缓存的方式.
    依赖。.png

    相关文章

      网友评论

          本文标题:Spring-IOC-2

          本文链接:https://www.haomeiwen.com/subject/kwfwyltx.html