`
hiskyrisa
  • 浏览: 36929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Study:Spring的单例是否只意味着能创建一个实例

 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<!-- Bean头部 -->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
	<bean id="s1" class="com.hisky.test.Student" init-method="init" scope="singleton">
		<constructor-arg index="0" value="10"></constructor-arg>
	</bean>
	<bean id="s2" class="com.hisky.test.Student" init-method="init" scope="singleton">
		<constructor-arg index="0" value="10"></constructor-arg>
	</bean>	
</beans>

 在Spring的配置文件中设置bean的scope为单例类型,启动没有问题,而且也能取到两个对象。

@ContextConfiguration("classpath:/spring/test.xml")
public class Test extends AbstractTestNGSpringContextTests {
	@Autowired
	@Qualifier("s1")
	Student s1;

	@Autowired
	@Qualifier("s2")
	Student s2;

	@org.testng.annotations.Test
	public void testname() throws Exception {
		System.out.println(s1);
		System.out.println(s2);
	}
}

 输出显示,获取到的是两个不同的对象。所以Spring的单例,意味着对象被调用的时候,不再重新创建。但在JVM中,可以存在同一类的多个bean示例。

分享到:
评论

相关推荐

    spring-study:spring源码分析

    4. **原型模式**:Spring支持基于原型(Prototype)的bean定义,这意味着可以创建一个Bean的实例,然后复制该实例以创建新的对象。这种方式在需要大量相似对象时非常有效,避免了重复的创建过程。 5. **单例模式**...

    Spring-Study:Spring学习项目

    4. **Spring MVC**:Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序。它提供了一个分层架构,包括模型、视图和控制器,使得开发人员能够更容易地处理HTTP请求和响应。 5. **注解驱动开发**:Spring...

    spring-boot-study:Spring Boot 入门教程及示例代码-源码

    Spring Boot 入门教程及示例代码,手把手快速上手教程-源码

    SpringStudy:Spring研究

    它预设了许多默认配置,使得开发者能快速创建一个可运行的项目。 5. **Spring Data**:这是一个用于简化数据访问的模块,支持多种数据库,包括JPA(Java Persistence API)、Hibernate以及NoSQL数据库。它提供了...

    study-spring_spring_

    Spring 框架是Java开发中的一个核心框架,它提供了全面的应用程序开发模型,用于简化企业级应用的开发。Spring框架的设计目标是使创建和维护Java应用程序变得更加简单,特别是通过使用依赖注入(Dependency ...

    Spring-Security-study:springSecurity框架学习

    标签"系统开源"意味着Spring Security是一个开放源码项目,它遵循Apache 2.0许可证,允许开发者自由使用、修改和分发。开源社区的支持使得Spring Security不断进化,拥有丰富的文档和社区支持,方便开发者解决遇到的...

    Pivotal Certified Professional Spring Developer Exam A Study Guide

    8. **Spring Security**:Spring Security是一个强大的安全框架,提供了身份验证、授权和安全控制等功能,保护Spring应用免受各种攻击。 9. **Spring Batch**:Spring Batch是Spring框架的一个模块,专门用于处理...

    spring-study:spring框架源码分析

    - **作用域**:Spring支持单例(singleton)、原型(prototype)、请求(request)、会话(session)等多种作用域,每种作用域的bean有不同的生命周期和可见范围。 4. **Bean的自动装配** - **byName**:通过bean...

    spring-study.zip

    1. **Java 8支持**:Spring5全面支持Java 8,这意味着你可以充分利用Java 8的新特性,如Lambda表达式、Stream API以及日期和时间API。这对于编写简洁、高效的代码至关重要。 2. **Reactive编程模型**:Spring5引入...

    SpringInAction5Study:SpringInAction5Study

    1. **Spring核心概念**:Spring框架的基础是依赖注入(Dependency Injection,DI),它允许组件之间松耦合,通过容器管理对象的生命周期和依赖关系。另外,Spring Bean是Spring中的核心概念,是被容器管理的对象。 ...

    spring-boot-study:Spring启动学习

    Spring Boot 是一个由 Pivotal Team 开发的 Java 框架,用于简化Spring应用程序的初始搭建以及开发过程。它的核心特性是可以内嵌Servlet容器,如Tomcat或Jetty,这样我们无需打包成WAR文件,可以直接运行JAR文件。...

    Spring-Study-master JAVA学习实例

    总的来说,"Spring-Study-master JAVA学习实例"是一个全面了解和掌握Spring框架的实践平台,通过这个项目,开发者不仅可以学习到Spring的基本概念和事务管理,还能了解到如何优化项目结构,提高代码质量,以及如何...

    spring-study-demo:Spring学习示例

    "spring-study-demo"项目是一个专门为了学习Spring框架而设计的示例工程,旨在帮助开发者深入理解和实践Spring的核心特性。 1. **Spring核心概念**: - **依赖注入(Dependency Injection)**:Spring通过DI允许...

    springcloud-study:springcloud学习

    这个压缩包"springcloud-study:springcloud学习"显然包含了一个名为"springcloud-study-master"的项目,这通常是一个GitHub仓库的克隆,用于教授或演示SpringCloud的相关知识。让我们深入探讨SpringCloud的核心组件...

    spring-boot-study:Spring引导学习

    在Spring Boot的应用结构上,"spring-boot-study"可能涵盖了如何创建一个基本的Spring Boot项目,包括创建Maven或Gradle构建文件,定义主启动类,以及配置文件的应用。此外,可能还会讲解到如何使用IDEA等开发工具...

    spring-cloud-study:spring cloud 学习 - 曾阿水

    3. **配置管理**:Spring Cloud Config提供了一种集中式的、版本化的配置管理方式,允许开发者在运行时动态更新应用配置,降低了维护成本。 4. **负载均衡**:Ribbon是客户端负载均衡器,可以配合Eureka实现服务间...

    springcloud-study:springcloud的学习

    《SpringCloud深度学习指南》 在当今的微服务架构领域,SpringCloud以其强大的功能和易用性成为了...在这个过程中,不断学习、探索和优化,你会发现SpringCloud不仅是一个工具集,更是一种高效构建云原生应用的智慧。

    spring-boot-study:Spring Boot技术栈示例代码,手把手快速上手教程

    Spring Boot 是一个基于 Java 的框架,它旨在简化创建独立、生产级别的基于 Spring 应用的初始设置和配置工作。Spring Boot 提倡“约定优于配置”的原则,使得开发者能够快速搭建和运行应用程序。在这个名为 "spring...

    study-spring.zip

    4. **Web**:Spring Web模块提供了创建Web应用程序的功能,包括MVC(模型-视图-控制器)架构模式,Spring MVC是其核心组件,用于构建RESTful服务。 5. **Spring Boot**:这是一个相对较新的子项目,旨在简化Spring...

    springcloud-study:springcloud 的学习

    1. SpringCloud Gateway:SpringCloud的新一代API网关,更强大且性能更高。 2. SpringCloud Stream:用于构建消息驱动的应用,支持多种消息中间件。 3. SpringCloud Kubernetes:与Kubernetes集成,实现云原生的...

Global site tag (gtag.js) - Google Analytics