Java 连接池与JNDI数据源池

Java 连接池与JNDI数据源池,java,tomcat,jndi,connection-pooling,apache-commons-dbcp,Java,Tomcat,Jndi,Connection Pooling,Apache Commons Dbcp,有两种方法可以获得连接池: 通过服务器JNDI和 通过应用程序池(例如HicariCP或c3p0) 哪条路更好?我认为JNDI更简单,因为不需要更多的依赖项来让它工作 雄猫说 注意-Tomcat中的默认数据源支持基于Commons项目中的DBCP连接池。但是,通过编写自己的自定义资源工厂,可以使用实现javax.sql.DataSource的任何其他连接池 但是这个说 我正在使用ApacheCommonsDBCP进行连接池,但在现实生活中,很可能容器完成了连接池,我们所需要的只是提供要使用的

有两种方法可以获得连接池:

  • 通过服务器
    JNDI
  • 通过
    应用程序池
    (例如
    HicariCP
    c3p0
哪条路更好?我认为
JNDI
更简单,因为不需要更多的依赖项来让它工作

雄猫说

注意-Tomcat中的默认数据源支持基于Commons项目中的DBCP连接池。但是,通过编写自己的自定义资源工厂,可以使用实现javax.sql.DataSource的任何其他连接池

但是这个说

我正在使用ApacheCommonsDBCP进行连接池,但在现实生活中,很可能容器完成了连接池,我们所需要的只是提供要使用的JNDI参考详细信息


如果
Tomcat
本身正在使用连接池,那么使用
apachecommons DBCP
依赖项进行连接池有什么意义呢?

它们是一样的。JDNI是访问以前的连接池实例的一种方法。但是我真的不推荐使用Commons DBCP。@BoristheSpider什么是以前的连接池实例?如果我配置了JNDI,那么我将使用JNDI datasouce轮询和不可靠的实现,即它在Tomcat中的实现方式是Commons项目中的DBCP连接池。例如,还有其他使用c3p0的方法,没有使用JNDI。对不起,我的意思是在那句话中添加“configured”。所以你需要一个JDNI资源;然后通过应用程序中的JDNI进行访问。您可以将各种东西配置为JDNI资源,连接池只是其中之一。JDNI早于CDI和DI框架,这将是目前推荐的方法。因此,JNDI是容器管理资源的一种方法。