关于spring:SpringIOC2

53次阅读

共计 911 个字符,预计需要花费 3 分钟才能阅读完成。

IOC根底

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

BeanFactoryApplicationContext 区别

  • BeanFactory 容器是顶层接口, 定义一些根底性能与根底标准, 而 ApplicationContext 容器是高级接口也是 BeanFactory 的子接口.
  • ApplicationContext 领有更多的性能, 国际化、资源文件读取、类列表展现

Bean的作用范畴与生命周期

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

作用范畴

  • singleton、property、request、session、application、websocket
  • singleton(单例模式)与 property(多例模式)应用较多; singleton 生命周期为程序启动时到完结、property 生命周期为当其应用时创立新对象.

高级个性

提早加载

  • ApplicationContext 在实例化的时候也会将 singleton objects 提前实例化. 提前实例化意味着作为初始化的一部分. 如果不想让某一 singleton object 提前被实例化, 能够标识为懒加载(lazy)
  • 开启提早加载肯定水平进步容器启动和运行性能 
  • 对于不常应用的 Bean 设置提早加载,这样偶然应用的时候再加载,不必要从一开始该 Bean 就占 用资源

FactoryBeanBeanFactory

  • FactoryBean 生成某种类的工具类. 而 BeanFactory 是容器的顶级接口
  • spring 中存在两种 Bean, 一般 Bean 与 FactoryBean
  • FactoryBean 能够生成某一个类型的 Bean 实例(返回给咱们) 

后置解决

  • 两种后置解决 Bean 的接口, BeanFactoryPostProcessor 和 BeanPostProcessor

循环依赖

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

正文完
 0