一、Spring中Bean的5个作用域

在Spring 2.0及之后的版本中,Bean的作用域被划分为5种。如下

  • singleton      默认值。以单例模式创建Bean的实例,即容器中该Bean的实例只有一个
  • prototype     每次从容器中获取Bean时,都会创建一个新的实例
  • request      用于Web应用环境,针对每次Http请求都会创建一个实例
  • session      用于Web应用环境,同一个回话共享同一个实例,不同的回话使用不同的实例
  • global session   仅在Portlet的Web应用中使用,同一个全局回话共享一个实例。对于非Portlet环境,等同于session

singleton是默认的作用域,即默认情况下Spring为每个Bean仅创建一个实例。对于不存在线程安全问题的组件,采用这种方式可以大大减少创建对象的开销,提高运行效率。而对于存在线程安全问题的组件,可以使用prototype作用域。如下

<bean id="userService" class="edu.cn.service.Impl.UserServiceImpl" scope="prototype">
</bean>

二、使用注解指定Bean的作用域

对于使用注解声明的Bean组件,如需修改其作用域,可以使用@Scope注解实现。如下

@Service
@Scope("prototype")
public class UserServiceImpl implements UserService {
//省略

配置Bean的作用域的更多相关文章

  1. spring之bean的作用域scope的值的详解

    今天研究了一下scope的作用域.默认是单例模式,即 scope="singleton".另外scope还有prototype.request.session.global ses ...

  2. 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

    Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ cl ...

  3. Spring入门第二课:Spring配置Bean的细节

    1.配置bean的作用域: 通过配置scope属性可以bean的作用域,参数有 prototype.request.session.singleton. 1)singleton为单例,IoC容器只会创 ...

  4. Spring -- Bean自己主动装配&amp;Bean之间关系&amp;Bean的作用域

    对于学习spring有帮助的站点:http://jinnianshilongnian.iteye.com/blog/1482071 Bean的自己主动装配 Spring IOC 容器能够自己主动装配 ...

  5. Spring核心技术(五)——Spring中Bean的作用域

    前文概述了Spring的容器,Bean,以及依赖的一些信息,本文将描述一下Bean的作用域 Bean的作用域 当开发者定义Bean的时候,同时也会定义了该如何创建Bean实例.这些具体创建的过程是很重 ...

  6. Spring_自动装配 & bean之间的关系 & bean的作用域

    1.自动装配 beans-autowire.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  7. Spring4学习笔记 - 配置Bean - 自动装配 关系 作用域 引用外部属性文件

    1 Autowire自动装配 1.1 使用:只需在<bean>中使用autowire元素 <bean id="student" class="com.k ...

  8. Spring - 配置Bean - 自动装配 关系 作用域 引用外部属性文件

    1 Autowire自动装配1.1 使用:只需在<bean>中使用autowire元素<bean id="student" class="com.kej ...

  9. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. Springboot设置session超时时间

    按优先级高到低说: 第一种: spring boot 启动类里面: package com.mycenter; import org.mybatis.spring.annotation.MapperS ...

  2. Apicloud_(项目)网上书城03_拓展模块实现

    Apicloud_(项目)网上书城01_前端页面开发 传送门 Apicloud_(项目)网上书城02_后端数据获取 传送门 Apicloud_(项目)网上书城03_拓展模块实现 传送门 实现商品详情页 ...

  3. Sqlmap自动注入--REQEST

    数据段: --data sqlmap.py -u ”192.168.1.101/mullitea/login.php" --data="username&passwd=2& ...

  4. redis-sentinel 主从复制高可用

    Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端 ...

  5. tps吞吐量映射的问题

    tps随着时间增加,吞吐量增加,但到达一定时间,吞吐不变,出现瓶颈,可能是以下原因 1/反应宽带问题 2/连接数释放问题 3/cpu占有率超出问题 4/内存不够问题 5/数据库连接屏蔽 用jmeter ...

  6. C++入门经典-例4.5-利用循环求n的阶乘

    1:代码如下: // 4.5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  7. C# 注册DLL(使用cmd)

    //cmd:"regsvr32 " + dllPath(注册dll的语句) //output:string.Empty(注册后的反馈信息 ) private static void ...

  8. note: Spanner: Google’s Globally-Distributed Database

    1. Abstract & introduction ref:http://static.googleusercontent.com/media/research.google.com/zh- ...

  9. android 播放音乐媒体文件(四)

    mMediaPlayer 播放网络mp31.异步准备使用 mMediaPlayer.prepareAsync(); 2.监听prepareAsync结果使用MediaPlayer.OnPrepared ...

  10. JavaScript getClass() 函数

    定义和用法 getClass() 函数可返回一个 JavaObject 的 JavaClass. 语法 getClass(javaobj) 参数 描述 javaobj 一个 JavaObject 对象 ...