`
zuiyanwangyue
  • 浏览: 167205 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

我观commons-pool之对象池与Ioc容器的区别

阅读更多

Ioc容器(典型的Spring)负责创建并管理对象之间的依赖关系以及生命周期,甚至还可以支持某种程度上受管对象与容器之间的交互(这需要受管对象的定义类实现容器相关的接口),spring借助对象作用域(singleton、prototype、request、session等)的概念支持在不同层次上缓存受管对象。 

但是从本质上来说容器对受管对象的缓存与池的行为是不同的,一般来说池需要区分其管辖的对象在某一特定时刻是否是空闲的,以保证当客户端向池索取对象时得到的总是空闲可用的对象,而一般来讲容器不需要也没必要承担这种责任。

从客户端的角度来说,容器的意义在于使得客户端可以共享某些对象及它们的状态,以及通过一种可配置的方式让容器管理这些对象之间的依赖关系和生命周期等等;而使用池的目的多半在于用户要池化的对象是有状态的,最重要的是这些状态并非为了在应用程序之间共享,它们只是对象池区分对象是否空闲可用的重要标志。典型地拿数据库连接池来说,它所管理的对象是数据库连接,它的职责是保证客户端在任何时候得到的连接总是空闲可用的(也就是说没有其它任何用户在使用此连接),如果某一特定的连接已被客户端获得且尚未被重新放回池中,其它客户端是不可以再获得此连接的。

一言以蔽之,客户端借助容器可以共享容器中的对象以及它们之间的状态;而借助于对象池却可以在不同时刻共享池中处于某种特定状态(典型的是空闲)的对象。

分享到:
评论

相关推荐

    commons-dbcp jar包

    **标题与描述解析** 标题"commons-dbcp jar包"指的是Apache Commons DBCP库的...在实际开发中,需要结合Spring的IoC容器来管理和使用DBCP,同时确保正确地配置和关闭数据库连接,以保持系统的稳定性和资源的有效利用。

    无冲突ssh架包下载

    3. **Commons-Pool**:Apache Commons Pool是Apache的一个通用对象池库,为各种类型对象的池化提供了一种抽象。虽然它本身不是专门为数据库连接池设计的,但Commons-DBCP使用了Commons-Pool来实现数据库连接的池化。...

    Spring3.0+mybatis3.0环境搭建

    Dbcp是数据库连接池的实现,而Pool则是通用的对象池实现,它们共同作用于Spring的数据源管理,提高数据库访问效率。 **5. 日志记录** Jakarta-log4j-1.2.8是日志记录的常用工具,它允许开发者在应用程序中记录各种...

    Java企业级开发SSH三大框架的Jar包

    - commons-pool.jar:Apache Commons Pool,一个对象池实现,DBCP依赖于它来管理数据库连接。 总结,这个压缩包包含的Jar文件是Java企业级开发SSH框架所必需的,它们提供了Spring的AOP支持、Struts的文件上传功能...

    java 6用的dbcp和poor

    它提供了基于Apache Commons Pool对象池机制的数据源,能够有效地管理数据库连接,避免频繁创建和关闭连接导致的性能损耗。DBCP的核心功能包括: 1. 连接池的创建和配置:DBCP允许开发者自定义连接池的大小、超时...

    spring框架所需要jar文件

    IoC容器是Spring的核心,它管理着应用对象的生命周期和配置,使得开发者能够通过配置文件或注解来声明组件之间的依赖关系,而不是硬编码。 `aspectjweaver.jar`是AspectJ的编织器,用于实现AOP功能。在Spring中,...

    搭建smvc框架所需jar包

    - `commons-dbcp.jar` 或 `commons-pool.jar`:数据库连接池,管理数据库连接资源。 6. **JSON库**: - `json-lib.jar` 或 `jackson-databind.jar`:用于处理JSON格式的数据交换。 7. **Logging框架**: - `log...

    spring+hibernate整合需要的一些包

    4. **Commons-Pool**:Apache Commons Pool是通用的对象池库,提供了创建、管理和维护对象池的能力。DBCP的实现就依赖于Commons-Pool来管理数据库连接的生命周期,实现高效的连接复用。 整合Spring和Hibernate的...

    ssh所需架包

    8. **Commons Pool**:`commons-pool-1.5.4.jar`是Apache Commons的对象池服务,它是各种对象池的抽象,包括C3P0在内的连接池都基于此库实现。 9. **Javassist**:`javassist-3.11.0.GA.jar`是一个字节码操作库,...

    nutMvc 最专业的讲解

    - `commons-dbcp-1.3.jar`和`commons-pool-1.5.4.jar`:Apache Commons的数据库连接池组件,提高数据库连接的复用效率。 通过以上介绍,我们对NutMvc框架有了更深入的理解。它在Java Web开发中提供了灵活、高效的...

    mybatis整合spring时 的核心jar包

    - ` commons-dbcp-1.x.x.jar` 或 `commons-pool-1.x.x.jar`: 数据库连接池,提高数据库资源的复用性,提升性能。 在整合MyBatis与Spring时,我们需要在Spring的配置文件中声明Bean,如DataSource、...

    Spring3.2与Mybatis3.2的整合的需要的所有的jar包

    3. **commons-pool-1.3.jar**:Apache Commons Pool库,这是一个对象池服务,可以用来管理数据库连接池,提高数据库连接的复用性,减少频繁创建和销毁连接的开销。 4. **commons-dbcp-1.2.2.jar**:Apache Commons ...

    SSH整合过程详解

    3. `commons-pool.jar`:Apache的通用对象池实现。 二、单独配置 1. Struts2配置 - 修改`web.xml`,添加Struts2过滤器: ```xml <filter-name>struts2</filter-name> <filter-class>org.apache.struts2....

    ssh所需全部jar

    首先,Spring框架是Java开发的核心组件,它的IoC容器使得对象的创建和管理变得更加灵活,可以实现松耦合。Spring的AOP则提供了一种模块化业务逻辑的方式,可以方便地进行日志记录、事务管理等跨切面的处理。在jar...

    spring ssh

    4. **整合SSH**:将Spring的IoC容器与Struts2的Action结合,通过Spring的Struts2插件(`spring-webmvc-struts.jar`)实现Action的依赖注入。此外,可能还需要配置Hibernate的SessionFactory,并在Spring中管理...

    springjar包

    7. **commons-pool.jar**:Apache Commons Pool是对象池化库,提供了一种管理可重用对象的机制,这里可能是用于数据库连接池的底层支持。 8. **commons-logging.jar**:Apache Commons Logging是Java的日志抽象层,...

    通过Spring的IOC控制完成druid数据库的基本操作案例

    标题中的"通过Spring的IOC控制完成druid数据库的基本操作案例"指的是使用Spring的依赖注入(Inversion of Control,简称IOC)容器来管理Druid数据源,并进行数据库的基本操作。Druid是一个高性能、全面的数据库连接...

    HibernateADD (hibernate和spring整合,使用dbcp连接池方式连接数据库)

    接下来,我们引入Apache DBCP(Database Connection Pool),这是一个基于Apache Commons Pool对象池实现的数据库连接池。连接池的作用是复用数据库连接,减少创建和销毁连接的开销,提高系统性能。DBCP配置通常包括...

Global site tag (gtag.js) - Google Analytics