美文网首页Java 杂谈
Spring 实战 四: bean 的作用域

Spring 实战 四: bean 的作用域

作者: DJN_ | 来源:发表于2018-07-14 09:18 被阅读3次

在默认的情况下,Spring 上下文的所有 bean 都是作为单例存在的。
单例会保持一些状态,对象会被污染,有时重用时不安全的。

作用域:

  1. 单例(Singleton):整个应用中,只创建 bean 的一个实例
  2. 原型(Prototype):每次注入或通过 Spring 上下文获取时都创建新的实例
  3. 会话(Session):在 Web 应用中,为每个会话创建一个 bean 实例
  4. 请求(Request):在 Web 应用中,为每个请求创建一个 bean 实例

使用 @Scop 组合 @Bean 和 @Component(包括自注解,被 @Component 注解的注解)。


image.png
image.png

在 xml 中,bean 标签有对应的 socp 属性。

会话和请求作用域

就购物车功能而言,会话作用域最为合适。


image.png

SCOPE_SESSION 对于一次会话会创建新的实例。
proxyMode 解决了将会话或请求作用域 bean 注入到单例 bean 中的问题。

实际注入时会注入目标 bean 的一个代理,使用时代理会对其进行懒解析并将调用委托给会话作用域内正真的 bean。

ScopedProxyMode.INTERFACE 指明目标类是一个接口,注入时需使用 JDK 动态代理
ScopedProxyMode.TARGET_CLASS 指明目标类是类,注入时使用 CGLib 代理


image.png

xml 中也提供了相应属性:bean 元素的 scop 属性,以及 bean 元素下的子元素 aop:scoped-proxy 。
<aop:scoped-proxy proxy-target-class="false"/>
通过 proxy-target-class 属性指明目标 bean 是接口还是类。

相关文章

  • SPRING BEAN的基础

    一、SPRING BEAN的定义: 二、SPRING BEAN的作用域: 作用域例子: your msg :p...

  • Spring Bean 作用域

    原文 :一文读懂Spring Bean作用域 - RelaxHeart网 Spring Bean的几种作用域 Sp...

  • Spring

    Spring Bean 作用域 Spring 3 中为 Bean 定义了 5 中作用域分别为 singleton(...

  • Spring_04_Bean的作用域

    Bean的作用域  当在Spring中定义个bean时,你必须声明bean的作用域选项.例如,为了强制Spring...

  • Spring 实战 四: bean 的作用域

    在默认的情况下,Spring 上下文的所有 bean 都是作为单例存在的。单例会保持一些状态,对象会被污染,有时重...

  • spring 一简介

    spring二 ioc dispring三 bean的生命周期以及作用域spring四 aop 写spring是为...

  • Bean的作用域

    Bean的作用域: singleton 当一个bean的作用域为singleton,那么Spring IoC容器中...

  • Bean的作用域

    Bean的作用域: singleton 当一个bean的作用域为singleton,那么Spring IoC容器中...

  • spring 二ioc di

    spring一 简介spring三 bean的生命周期以及作用域spring四 aop spring的核心就是io...

  • 7、Spring-XML-作用域

    一、概要 scope 用来配置 spring bean 的作用域。 在spring2.0之前,bean只有2种作用...

网友评论

    本文标题:Spring 实战 四: bean 的作用域

    本文链接:https://www.haomeiwen.com/subject/jvmepftx.html