配置Bean的作用域

一、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 {
    //省略
} 

原文地址:https://www.cnblogs.com/yanguobin/p/11703568.html

时间: 2024-10-26 04:11:34

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

spring4学习:bean的作用域

spring bean 的作用域有四种:singleton.prototype.session和request. 常用的有singleton和prototype两种.其他两种比较少用 使用bean的scope属性来配置bean的作用域        singleton:默认值.容器初始化时创建bean实例,在整个容器的生命周期内只创建这一个bean,单例的.        prototype:原型的,容器初始化时不创建bean实例,而在每次请求时都创建一个新的bean实例,并返回. 例如: Ca

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

Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参的构造器 2.依赖注入的方式 1)属性注入:通过setter方法注入Bean的属性值或依赖的对象 属性注入使用<Property>元素,使用name指定Bean的属性名称,使用value指定Bean的属

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

今天研究了一下scope的作用域.默认是单例模式,即 scope="singleton".另外scope还有prototype.request.session.global session作用域.scope="prototype"多例.再配置bean的作用域时,它的头文件形式如下: 如何使用spring的作用域: <bean id="role" class="spring.chapter2.maryGame.Role"

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

Bean的自动装配 Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 的 autowire 属性里指定自动装配的模式 有以下几种自动装配的类型: byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配. byName(根据名称自动装配): 必须将目标 Bean 的名称和属性名设置的完全相同. constructor(通过构造器自动装配):

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

1 Autowire自动装配 1.1 使用:只需在<bean>中使用autowire元素 <bean id="student" class="com.kejian.spring.bean.autowire.Student" p:name="Tony" autowire="byName"></bean> 1.2 类型 byName 目标bean的id与属性名一置,若不匹配置为null byTy

8 -- 深入使用Spring -- 2...2 指定Bean的作用域

8.2.2 指定Bean的作用域 当使用XML 配置方式来配置Bean实例时,可以通过scope来指定Bean实例的作用域,没有指定scope属性的Bean实例作用域默认是singleton. 当采用零配置方式来管理Bean实例时,可使用@Scope Annotation,只要在该Annotation中提供作用域的名称即可. package edu.pri.lime._8_2_2.bean.impl; import org.springframework.context.annotation.S

Spring bean的作用域和生命周期

bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3.对于singleton  spring容器只会创建一个共享实例,prototype则会创建不同的实例 bean的生命周期(bean自身的方法,bean级生命周期接口方法,容器级生命周期接口方法) 分为BeanFactory的生命周期和ApplicationContext的生命周期 1.对于BeanFactor

spring bean的作用域和自动装配

1 Bean的作用域 l  singleton单列:整个容器中只有一个对象实例,每次去访问都是访问同一个对象  默认是单列 l  prototype原型: 每次获取bean都产生一个新的对象,比如Action l  request:每次请求时创建一个新的对象 l  session:在会话的范围内是一个对象,http那个session l  global session:只在portlet下有用,表示application l  application:在应用范围内有效 注意:配置action的时

从头认识Spring-1.5 Bean的作用域

这一章节我们来讨论一下Bean的作用域. 1.Bean的作用域 singleton:单例 prototype:任意次创建 request:每次请求创建一个,仅在web里面有效 session:每个session创建一个,仅在web里面有效 global-session:在全局session里面,每个bean一个实例 上面的几个作用域我们一般使用singleton和prototype,而且以singleton为主 2.singleton和prototype的对比 (1)domain package