JAVA记录

Wesley13
• 阅读 871

singleton作用域:当把一个Bean定义设置为singleton作用域是,Spring IoC容器中只会存在一个共享的Bean实例,并且所有对Bean的
请求,只要id与该Bean定义相匹配,则只会返回该Bean的同一实例。值得强调的是singleton作用域是Spring中的缺省作用域。
prototype作用域:prototype作用域的Bean会导致在每次对该Bean请求(将其注入到另一个Bean中,或者以程序的方式调用容器的getBean
()方法)时都会创建一个新的Bean实例。根据经验,对有状态的Bean应使用prototype作用域,而对无状态的Bean则应该使用singleton作用
域。
对于具有prototype作用域的Bean,有一点很重要,即Spring不能对该Bean的整个生命周期负责。具有prototype作用域的Bean创建后交由调
用者负责销毁对象回收资源。
简单的说:
singleton 只有一个实例,也即是单例模式。(默认)
prototype访问一次创建一个实例,相当于new。 
应用场合:
1.需要回收重要资源(数据库连接等)的事宜配置为singleton,如果配置为prototype需要应用确保资源正常回收。
2.有状态的Bean配置成singleton会引发未知问题,可以考虑配置为prototype。

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
spring的scope为prototype的bean的正确使用方法
spring的bean的作用域有singleton,prototype,session,request等,本来以为很简单,但实际面试中,90%的人根本就不知道如何使用,其中不乏工作5,6年以上的,只知道有这几个作用域,这考验java开发人员de基础。很多人看教程里面,使用prototype作用域的bean代码里面,获取bean的方法都是用appConte
Easter79 Easter79
3年前
spring中@Scope控制作用域
  注解形势:通过@Scope注解控制作用域,默认使用单实例模式,可修改为多实例模式1/2Specifiesthenameofthescopetousefortheannotatedcomponent/bean.3<pDefaultstoanempty
Easter79 Easter79
3年前
Spring中管理Bean依赖注入之后和Bean销毁之前的行为
    对于Singleton作用域的Bean,Spring容器将会跟踪它们的生命周期,容器知道何时实例化结束、何时销毁。Spring可以管理Bean在实例化结束之后和Bean销毁之前的行为。Bean依赖关系注入之后的行为:    Spring提供了两种方式在Bean全部属性设置成功后执行特定的行为:在Spring配置文件
Easter79 Easter79
3年前
Spring框架笔记(七)——Spring IOC容器Bean的作用域
每个Bean都有自己的作用域,它们会在特定的时间生成,在特定的范围生存。SpringIOC容器的bean有四种作用域:!(http://static.oschina.net/uploads/space/2015/0718/222714_BcCF_1156339.png)其中默认的作用域是singleton,单例模式。也就是我们之前配置的bean
Easter79 Easter79
3年前
Spring中RequestScope作用域Bean原理
一、前言web.xml里面配置<listener    <listenerclassorg.springframework.web.context.request.RequestContextListener</listenerclass</listenercomponentbean.x
Easter79 Easter79
3年前
Spring容器中Bean的作用域
当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:singleton:单例模式,在整个SpringIoC容器中,使用singleton定义的Bean将只有一个实例prototype:原型模式,每次通过容器
Stella981 Stella981
3年前
Spring Bean 范围
Scope分类scope范围说明singleton(默认)每个SpringIoC容器定义单个bean实例prototype任意数量的对象实例request每个HTTP请求都有自己的Bean实例sessionHTTP会话的生命周期将共用同一个Bean实例globalSession全局HTTP会话的生命周期
Easter79 Easter79
3年前
Spring笔记2
工厂注入:<beanid\_"xxx"_class\_"x.x.x"_factorymethod\_"methodName"_/\Bean的作用域<beanid\_"xxx"_class\_"x.x.x"_scope\_"scope"_/\scope"prototype"每次
Easter79 Easter79
3年前
Spring中的bean是线程安全的吗?
结论:不是线程安全的Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。Spring的bean作用域(scope)类型:singleton:单例,默认作用域。p