Spring中Bean的scope的singleton和prototype使用场景
引用也不是很清楚,但是在debug的时候,看到的是scope为singleton的会在启动服务器是实例化,而prototype是在请求的时候再实例化 其实是这样的,如果一个bean是prototype的,并且这个bean要被注入到其它bean或者你通过getBean这样的方式获得这个bean的时候,spring容器会创建一个新的实例给你。 singleton模式
·
引用
也不是很清楚,但是在debug的时候,看到的是scope为singleton的会在启动服务器是实例化,而prototype是在请求的时候再实例化
其实是这样的,如果一个bean是prototype的,并且这个bean要被注入到其它bean或者你通过getBean这样的方式获得这个bean的时候,spring容器会创建一个新的实例给你。
singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,也就是说,singleton会让所有线程共享他的成员变量。prototype则不会这样。
此外singleton的生命周期由容器来管理,但是prototype的生命周期得你自己管理。
最后,有个小trick,singleton的bean引用一个prototype的bean时会出现问题,因为singleton只初始化一次,但prototype每请求一次都会有一个新的对象,但prototype类型的bean是singleton类型bean的一个属性,所以不可能有新prototpye的bean产生
更多推荐
已为社区贡献1条内容
所有评论(0)