三、spring Bean的作用域:
scope可以取值:
* singleton:每次调用getBean的时候返回相同的实例
* prototype:每次调用getBean的时候返回不同的实例
1、applicationContext-beans.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!--
<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="prototype"/>
设置成scope="prototype",下面测试代码输出bean11!=bean12,反之scope="singleton",永远只生成一个实例-->
<bean id="bean1" class="com.bjsxt.spring.Bean1" scope="singleton"/>
</beans>
2、测试代码
package com.bjsxt.spring;
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");
}else {
System.out.println("bean11!=bean12");
}
}
}
分享到:
相关推荐
除了基本的`@Component`家族,Spring还提供了一些高级注解,如`@Scope`用于定义Bean的作用域,`@Lazy`用于延迟初始化Bean,`@Qualifier`用于在多个相同类型的Bean中指定特定的一个。 ### **总结** Spring的自动...
本篇我们将聚焦于"Spring学习笔记系列之三"中的关键知识点——SpringMVC的源码分析,特别是父子容器的启动原理。这个主题是理解Spring MVC工作流程、定制化配置以及优化应用程序性能的关键。 首先,我们要明白...
Spring学习笔记2涵盖了Spring框架的核心概念和重要特性,旨在帮助开发者深入理解并熟练掌握Spring的使用。 1. **依赖注入(Dependency Injection, DI)**:这是Spring最核心的设计原则,它允许对象之间的依赖关系在...
以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...
本文主要围绕Spring的学习笔记展开,包括Spring的基本概念、容器的应用以及IoC特性进行深入探讨。 ### 一、Spring概述 1. **Spring框架的作用**:Spring的主要作用是提供一个统一的编程模型,通过容器管理对象...
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
<bean id="ServiceImpl" class="Cuiyw.Spring.Service.ServiceImpl" scope="singleton" name="myService,anotherService"/> ``` 此时,我们可以使用`id`(ServiceImpl)、`name`(myService、anotherService)中的...
以上内容涵盖了Spring框架的基础配置、依赖管理和高级特性等方面的知识点,希望对你学习Spring有所帮助。通过深入理解这些概念和技术,可以更好地掌握Spring框架的核心能力,并能灵活应用于实际项目中。
### Spring学习笔记 #### 一、面向抽象编程 面向抽象编程是软件工程中的一种设计理念,其核心在于通过定义抽象层来解耦系统组件之间的依赖关系。这种编程方式有助于提高系统的可扩展性和可维护性。 **关键知识点...
【标题】"spring学习笔记(五)"主要涵盖了Spring框架中关于Bean的作用域(Bean Scope)这一核心概念。在Spring框架中,Bean Scope是控制对象生命周期和单例或多例行为的关键。接下来,我们将深入探讨这个主题。 ...
bean的实例化策略可以通过scope属性来设定,"singleton"表示单例,"prototype"表示每次请求都会创建新的实例。 初始化和销毁方法: 可以使用`init-method`和`destroyed-method`属性指定bean的初始化和销毁方法,...
### Spring 2.5 学习笔记知识点梳理 #### 第一课:面向抽象编程 - **定义**:面向抽象编程是一种编程范式,强调通过抽象类或接口来设计程序结构,减少对具体实现的依赖。 - **优势**: - 提高了系统的可维护性与...
### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...
【Spring 学习笔记】 Spring 是一个开源的 Java 应用框架,主要关注于应用程序的分层架构,提供控制反转(IOC)和面向切面编程(AOP)的支持。本笔记将详细介绍 Spring 的核心概念、配置和应用。 **面向接口(抽象...
当我们谈论"SSH笔记-bean的作用域"时,这里SSH指的是Spring、Struts和Hibernate这三大Java Web开发框架的缩写,但具体讨论的是Spring框架中的内容。 在Spring 4中,Bean的作用域有以下几种: 1. **单例(Singleton...