JavaEEBean作用域与生命周期-创新互联
Bean的作用域
文章名称:JavaEEBean作用域与生命周期-创新互联
浏览路径:http://myzitong.com/article/cogooc.html
作用域是用来限制程序中变量的可用范围,Bean的作用域是Bean在Spring整个框架中的行为模式。
为彝良等地区用户提供了全套网页设计制作服务,及彝良网站建设行业解决方案。主营业务为成都网站建设、成都网站制作、彝良网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!默认情况下,Spring应用上下文所有的bean都是以单例的形式创建的,不管给定的一个bean被注入到其他bean 多少次,每次所注入的都是同一个实例。如果一个Bean对象被两个人使用,其中一个人修改了这个Bean对象,那么另一个人拿到的就是修改后的Bean对象,而不是没有被修改的Bean对象。
在大多数情况下,单例bean是很理想的方案。初始化和垃圾回收对象实例所带来的成本只留给一些小规模任务,在这些任务中,让对象保持无状态并且在应用中反复重用这些对象可能并不合理。使⽤单例模式可以很⼤程度上提⾼性能,所以在 Spring 中 Bean 的作⽤域默认也是 singleton 单例模式。
但是如果我们不希望出现上述的单例的情况,就可以使用Spring的其他作用域。Bean的作用域有6种:
- 单例(Singleton):在整个应用中,只创建bean的一个实例。⽆状态的Bean使⽤该作⽤域。⽆状态表示Bean对象的属性状态不需要更新,Spring默认选择该作用域。
- 原型/多例(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例。
- 会话(Session):在Web应用中,为每个会话创建一个bean实例。一次http的session中定义Bean实例。限定SpringMVC中使⽤。
- 请求(Rquest):在Web应用中,为每个请求创建一个bean实例。每次http请求会创建新的Bean实例。⼀次http的请求和响应的共享Bean,限定SpringMVC中使⽤。
- 全局(application):Web应⽤的上下⽂信息,限定在SpringMVC中使用。
- HTTP webSocket(websocket):WebSocket的每次会话中,保存了⼀个Map结构的头信息,⽤来包裹客户端消息头。第⼀ 次初始化后,直到WebSocket结束都是同⼀个Bean。限定Spring WebSocket中使⽤。
使用@Scope注解来声明Bean的作用域。使⽤枚举设置@Scope(ConfigurableBeanFactory
.SCOPE_PROTOTYPE)就可以设置成多例作用域。
Bean的生命周期Bean的生命周期分为以下5个部分:
- 实例化Bean,为Bea分配内存空间。
- 设置相关的属性,注入Bean和装配Bean。
- Bean初始化。
- 使用Bean。
- 销毁Bean。
Bean的执行流程:启动 Spring 容器 ->实例化 Bean(分配内存空间,从⽆到 有) ->Bean 注册到 Spring 中(存操作) ->将 Bean 装配到需要的类中(取操作)。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:JavaEEBean作用域与生命周期-创新互联
浏览路径:http://myzitong.com/article/cogooc.html