spring bean的作用域

bean有如下作用域:

  • singleton
  • prototype
  • request
  • session
  • application
  • websocket

singleton(单例)

单例是spring默认的作用域,不用显示指定,对于每一个bean,spring容器只创建一个实例,当有多个类依赖于这个bean时,其实注入的都是同一个实例。
单例

prototype(多例)

每个请求方都会得到自己对应的一个对象实例
多例设置成多例作用域需要显示指定

<bean id="accountService" class="com.something.DefaultAccountService" scope="prototype"/>

Request, Session, Application, WebSocket Scopes

这四种作用域只有在web项目下才能使用,在使用这四种作用域前,还需要进行一些web的初始化配置,在web.xml下加入如下配置信息



<web-app>
    ...
    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener
        </listener-class>
    </listener>
    <filter>
        <filter-name>requestContextFilter</filter-name>
        <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>requestContextFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    ...
</web-app>


request 作用域

<bean id="requestProcessor" class="......" scope="request"/>

对每个http请求都会创建一组bean实例,各组实例之间互不干扰。

session作用域

<bean id="sessionProcessor" class="......" scope="session"/>

与request类似,对每个独立的session创建一组bean实例

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值