- singleton---单例模式
单例模式,在spring 中其实是scope(作用范围)参数的缺省设定值
每个bean定义只生成一个对象实例,每次getBean请求获得的都是此实例
- 单例模式分为饿汉模式和懒汉模式
饿汉模式 | spring singleton的缺省是饿汉模式:启动容器时(即实例化容器时),为所有spring配置文件中定义的bean都生成一个实例 |
懒汉模式 | 在第一个请求时才生成一个实例,以后的请求都调用这个实例 spring singleton设置为懒汉模式: <beans default-lazy-init="true"> |
- 另一种和singleton对应的scope值---prototype多实例模式
调用getBean时,就new一个新实例
- singleton和prototype的比较
singleton
xml配置文件: <bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" /> |
测试代码: ctx = new ClassPathXmlApplicationContext("spring-hibernate-mysql.xml"); DvdTypeDAO tDao1 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO"); DvdTypeDAO tDao2 = (DvdTypeDAO)ctx.getBean("dvdTypeDAO"); |
运行: true com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333 com.machome.hibernate.impl.DvdTypeDAOImpl@15b0333 说明前后两次getBean()获得的是同一实例,说明spring缺省是单例 |
prototype
<bean id="dvdTypeDAO" class="com.machome.hibernate.impl.DvdTypeDAOImpl" scope="prototype" /> |
执行同样的测试代码 |
运行: false com.machome.hibernate.impl.DvdTypeDAOImpl@afae4a com.machome.hibernate.impl.DvdTypeDAOImpl@1db9852 说明scope="prototype"后,每次getBean()的都是不同的新实例 |
转自 http://blog.sina.com.cn/s/blog_6151984a0100kfij.html
相关推荐
### Spring的Bean配置详解 #### 一、Spring配置文件根元素`<beans>`解析 - **功能概述**:`<beans>`是Spring配置文件的根元素,用来包含一个或多个`<bean>`元素,用于定义Spring容器管理的各种Bean。 #### 二、`...
以下是对Spring Bean配置的详细解释: 1. `<beans>` 根元素:这是Spring配置文件的起点,它包含了所有的Bean定义。Spring容器会解析这个文件并创建相应的Bean实例。 2. `<bean>` 元素:这是Spring配置中最常见的...
- **SpringBean配置**:针对报销单维护的具体需求,配置相应的SpringBean,实现业务逻辑处理。 #### SpringBean配置详解 - **应用级配置**:主要涉及整个应用级别的配置信息,如数据源、事务管理等。 - **构件包...
以下是对Spring XML配置的12个技巧的详细说明: 1. 避免使用自动装配:Spring提供了自动装配功能,通过匹配bean属性或构造函数参数进行依赖注入。尽管能简化配置,但可能会牺牲可读性和可维护性,因此不推荐在大型...
### Spring 1.2 的 JDBC 配置详解 在 Spring 框架 1.2 版本中,对 JDBC 的支持已经相当成熟,并且提供了非常便捷的方式来管理和配置数据库访问。下面将根据提供的 XML 配置文件来详细介绍 Spring 1.2 中如何配置 ...
### Hibernate与Spring集成配置详解 #### 一、概述 在现代Java企业级应用开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,能够极大简化数据库操作;而Spring作为一个全面的企业级应用开发框架,提供了...
本说明文档将详细解析两种常见的触发器:SimpleTrigger和CronTrigger的配置与使用。 首先,SimpleTrigger适用于那些需要简单定时任务的场景。例如,如果你想让某个任务在特定时间启动,并按设定的间隔重复执行,...
接下来,我们将详细介绍五种具体的事务配置方式,并以第一种方式进行示例说明。 ##### 第一种方式:每个Bean都有一个代理 这种方式是最直接的事务配置方法之一。它为每个业务逻辑Bean创建一个代理对象,该代理对象...
本篇文章将详细讲解如何通过Setter注入来配置Spring Bean,同时也会简要介绍构造函数注入。 ### Setter注入 setter注入是Spring中最常用的依赖注入方式。在JavaSpring2中,我们可以创建一个类,比如`UserService`...
### Spring配置文件详解 在Java开发领域中,Spring框架凭借其强大的功能与灵活性深受开发者喜爱。其中,`applicationContext.xml`作为Spring的核心配置文件之一,起着至关重要的作用。本文将详细解读`...
12. `parent`: 指定Bean继承自哪个父Bean配置,继承的Bean会继承父Bean的属性和配置。 这些属性和元素组合起来,使得Spring配置文件能够灵活地配置和管理应用程序的组件,实现IoC(控制反转)和DI(依赖注入),...
以下是对"struct和spring整合的配置"的详细说明: 一、整合目的 整合Spring和Struts的主要目的是为了实现更好的业务逻辑管理、依赖注入以及提高代码的可测试性。通过Spring管理Struts中的Action类,可以避免在...
`applicationContext.xml`是Spring框架的核心配置文件,它定义了应用程序中Bean之间的依赖关系。通过MyEclipse可以快速生成此文件并进行必要的配置: - 选择文件存放路径,默认为`WebRoot/WEB-INF`目录。 - 设置...
总结起来,Spring的`applicationContext.xml`配置文件通过定义bean及其相互依赖关系,实现了对整个应用的组件管理和控制流程的搭建。这种方式让开发者能够灵活地配置和管理应用的各个部分,同时降低了组件之间的耦合...
本文将详细介绍Spring事务配置的五种方式,帮助你深入理解如何在Spring应用中管理事务。 1. **基于XML的声明式事务管理** 第一种方式是在每个Bean上使用代理来实现事务管理。首先,配置`DataSource`,通常是`...
在Spring配置文件中,我们可以定义一个Bean作为实例工厂,然后指定该Bean的一个方法作为实例工厂方法。Spring将调用这个方法来创建实际需要的Bean实例。这种方式对于那些需要复杂逻辑来决定如何创建Bean的场景非常...
以下是关于"spring ibatis 配置(包括事务管理)"的详细说明: 1. **引入依赖**:首先,我们需要在项目中添加Spring和iBatis的相关依赖。通常,这会在Maven或Gradle的配置文件中完成,确保引入了正确的版本。 2. *...
本文将详细介绍五种常见的Spring事务配置模式,并结合具体的配置示例进行说明。 #### 一、每个Bean都有一个代理 这种方式是最直接也是最简单的配置方法。它通过为每个需要事务支持的Bean创建一个代理来实现。这种...
- **配置 Spring**:更新 Spring 配置文件,声明 Bean 并关联它们。可以创建一个 `SpringFactory` 类,用于初始化 Spring 上下文。 - **连接 RemoteObject**:在 Flex 代码中,可能需要更新 `RemoteObject` 的配置...