`

spring Bean的作用域(singleton&prototype)

阅读更多
spring Bean的作用域:

scope可以取值:
* singleton:每次调用getBean的时候返回相同的实例
* prototype:每次调用getBean的时候返回不同的实例

spring中默认的是单实例(singleton)
配置文件中有个bean,如bean1
<!-- 
	<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="singleton"/>
	 -->
	<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="prototype"/> 

测试代码:
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import junit.framework.TestCase;

public class ScopeTest extends TestCase {
	
	private BeanFactory factory;
	
	@Override
	protected void setUp() throws Exception {
		factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");	
	}

	public void testScope1() {
		Bean1 bean11 = (Bean1)factory.getBean("bean1");
		Bean1 bean12 = (Bean1)factory.getBean("bean1");
		if (bean11 == bean12) {
			System.out.println("bean11==bean12");//如果默认,bean11 和bean12就是同一个实例,所以是相同的。
		}else {
			System.out.println("bean11!=bean12");//如果配置了prototype,bean11 和bean12就是不同实例。
		}
	}
}

就这样简单。
分享到:
评论

相关推荐

    Spring实战之Bean的作用域singleton和prototype用法分析

    总结起来,Spring中的`singleton`和`prototype`作用域是管理Bean生命周期的重要手段。`singleton`提供了单例模式的实现,确保了全局唯一性,适合状态不随时间改变的对象;`prototype`则支持按需创建新实例,适用于...

    简单了解spring bean作用域属性singleton和prototype的区别

    Spring Bean作用域属性singleton和prototype的区别详解 Spring Framework中,Bean的作用域属性是指Bean实例的生命周期和作用域。Spring提供了五种作用域:singleton、prototype、request、session和global session...

    spring的bean作用域

    - Singleton是Spring默认的Bean作用域。这意味着,无论何时,只要Spring容器被初始化,它都会创建一个Bean实例,并将其缓存起来。后续对相同ID的Bean的所有请求都会返回同一个实例。这种方式类似于设计模式中的单例...

    singleton Bean 创建 prototype Bean

    在Spring框架中,Bean的两种主要作用域是Singleton和Prototype。Singleton Bean表示在整个Spring IoC容器中只有一个实例,而Prototype Bean则表示每次请求都会创建一个新的实例。这两种作用域的使用场景和实现方式都...

    详解Spring中bean的作用域

    在 Spring 中,bean 的作用域可以分为五种:singleton、prototype、request、session 和 global session。这五种作用域类型决定了 bean 的实例化和生命周期的管理方式。 1. Singleton 作用域 Singleton 作用域是...

    通俗易懂spring之singleton和prototype.docx

    总的来说,掌握Spring中的singleton和prototype两种作用域,能够帮助开发者更好地设计和实现面向服务的架构,提高代码的可重用性和可维护性。理解它们的差异,并根据具体需求选择合适的作用域,是每个Spring开发者...

    JSP 中Spring Bean 的作用域详解

    一般Spring容器默认Bean的作用域为singleton 2&gt;prototype: 与singleton相反, 每次通过容器的getBean()方法获取该作用域下的Bean时都将产生一个新的Bean实例 3&gt;request: 对于同一次Http请求,request作用域下的...

    Spring Bean的作用域.docx

    Spring提供了五种不同的Bean作用域,每种都有其特定的使用场景和行为。 1. **Singleton作用域**:这是Spring的默认作用域,意味着无论何时从容器中请求一个特定的Bean,都会返回同一个实例。在配置文件中,可以使用...

    详解Spring中Bean的生命周期和作用域及实现方式

    Spring框架提供了多种作用域,例如 singleton、prototype、request、session、globalSession等。 1. singleton:这是默认的作用域,表示每个应用程序中只有一个实例。 2. prototype:表示每次请求都会创建一个新的...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    综上所述,Spring Bean重复执行两次的问题通常是由于配置错误、依赖注入循环、初始化回调的不当使用、静态工厂方法的误用、AOP代理的配置问题或是Bean作用域设置不准确导致的。通过仔细检查和修正这些问题,可以避免...

    Spring Bean生命周期&BeanDefinitions1

    7. **销毁**:当容器关闭时,如果是"singleton"作用域的Bean,Spring会调用`DisposableBean`接口的`destroy()`方法。如果设置了`destroy-method`属性,Spring也会执行指定的销毁方法。 Spring的BeanDefinition是...

    spring-aware接口实现与bean作用域(spring多容器层面)

    关于`bean的作用域`,Spring支持多种Bean的作用域,包括单例(Singleton)、原型(Prototype)、会话(Session)和请求(Request)。这些作用域定义了Bean的生命周期和创建行为: 1. **单例(Singleton)**:默认...

    Spring中的singleton和prototype的实现

    本文将详细介绍Spring中的singleton和prototype的实现,通过示例代码和测试结果,帮助读者深入理解这两种bean作用域。 Singleton Singleton模式是Spring框架中最基本的bean作用域,其特点是容器中只实例化一次。...

    Spring容器中Bean的作用域编程开发技术共3页.pd

    在Spring框架中,Bean的作用域是其生命周期管理的关键部分,它决定了Bean的创建、共享以及销毁方式。本篇内容将深入探讨Spring容器中Bean的作用域编程开发技术,以帮助开发者更好地理解和利用这些特性来优化应用的...

    浅谈Spring中Bean的作用域、生命周期

    Spring容器可以管理singleton作用域下Bean的生命周期,在此作用域下,Spring能够精确地知道Bean何时被创建,何时初始化完成,以及何时被销毁。 对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean的...

    Spring Bean 加载顺序 .

    对于Singleton作用域的Bean,Spring会在容器启动时一次性实例化所有Bean。实例化顺序基于Bean的依赖关系和`@DependsOn`注解。如果Bean之间没有依赖关系,Spring将按照Bean定义的顺序实例化。对于Prototype作用域,...

    SPRING FRAMEWORK BEAN作用域和生命周期原理解析

    SPRING FRAMEWORK BEAN作用域和生命周期原理解析 Spring Framework 是一个流行的 Java Web 应用程序框架,它提供了一个强大的依赖注入机制,称为 Bean 容器。Bean 容器管理着应用程序中的所有对象,并提供了一些...

    基于java的企业级应用开发:Bean的作用域.ppt

    在企业级应用开发中,Java 是一种广泛使用的编程语言,特别是在Spring框架的支持下,能够构建高效、可扩展的系统。Spring框架的核心特性之一是...选择正确的Bean作用域是实现高效且健壮的企业级应用开发的关键步骤。

Global site tag (gtag.js) - Google Analytics