当前位置:   article > 正文

07-Spring的作用域是什么?怎么使用_spring中对象的作用域是怎样的?怎么改变spring中对象的作用域?

spring中对象的作用域是怎样的?怎么改变spring中对象的作用域?

        小魏是编学编写,今天呢,这里给大家分享一下Spring里面的作用域,让我们来看看它的概念是什么呢?我的总结一句话就是:创建的对象相对于其他对象的可见范围

一、因为在Spring的作用域有5种作用域

单例(singleton):单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。singleton作用域是Spring中的缺省作用域,也可以显示的将Bean定义为singleton模式

多例(prototype):原型模式,每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象。根据经验,对有状态的bean使用prototype作用域,而对无状态的bean使用singleton作用域。

request:在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效,针对每一次Http请求,Spring容器根据该bean的定义创建一个全新的实例,且该实例仅在当前Http请求内有效,而其它请求无法看到当前请求中状态的变化,当当前Http请求结束,该bean实例也将会被销毁。

session:在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效,同Http请求相同,每一次session请求创建新的实例,而不同的实例之间不共享属性,且实例仅在自己的session请求内有效,请求结束,则实例将被销毁。

global Session:在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效。

这里将单例和原型模式给大家用大家分享一下

单例【每次获取的对象】:

多例,给spring的核心配置文件设置为多例

<bean id="animal" class="cn.xjxwc666.spring.Animal" scope="prototype"></bean>

总结:单例情况下每次获取对象的地址值都一样,但是多例情况下获取的地址值都不一样

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/495811
推荐阅读
相关标签
  

闽ICP备14008679号