Spring Bean作用域笔记

Dcr 1年前 ⋅ 849 阅读

概念

singleton--默认Spring Bean作用域,一个BeanFactory有且仅有一个实例

prototype--原型作用域,每次依赖查找和依赖注入生成新Bean对象

request--将Spring Bean存储在ServletRequest上下文中

session--将Spring Bean存储在HttpSession中

application--将Spring Bean存储在ServletContext中

实际只需重点学习singleton,prototype;从spring 5源码中实际声明的枚举值也只有singleton,prototype;

prototype bean作用域

Spring容器没有办法管理prototype Bean的完整生命周期,也没有办法记录实例的存在. 销毁回调方法将不会执行,可以利用BeanPostProcessor进行清扫工作

总结

  • Singleton Bean 无论依赖查找还是依赖注入,均为同一个对象

  • Prototype Bean 无论依赖查找还是依赖注入,均为新生成的对象

  • 如果依赖注入集合类型对象,singleton bean和prototype bean 均会存在一个

  • prototpye bean 有别于其他地方的依赖注入 prototype bean

  • 无论是singleton还是prototype bean均会执行初始化方法回调

  • 不过仅有singleton bean会执行销毁方法回调

全部评论: 0

    我有话说: