Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在servlet之间共享连接池_Java_Servlets_Connection Pooling - Fatal编程技术网

Java 在servlet之间共享连接池

Java 在servlet之间共享连接池,java,servlets,connection-pooling,Java,Servlets,Connection Pooling,我想在servlet之间共享一个数据库连接 我创建了连接池,获得了如下数据源对象 Context envContext = (Context)context.lookup("java:/comp/env"); dataSource = (DataSource)envContext.lookup("jdbc/limedb"); 现在,我想在servlet之间共享这个数据源对象,这样每个servlet都可以 connection = dataSource.getConnection(); 获得

我想在servlet之间共享一个数据库连接

我创建了连接池,获得了如下数据源对象

Context envContext  = (Context)context.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/limedb");
现在,我想在servlet之间共享这个数据源对象,这样每个servlet都可以

connection = dataSource.getConnection();
获得自己的连接


实现这一目标的最佳方法是什么?我想在应用程序启动时创建池并将其存储在某处…

实际上有几种方法可以做到这一点

  • 您可以使用依赖项注入框架来管理这些 为你建立联系。在幕后,它将使用一个对象池
  • 您可以创建一个单例对象来管理包含数据源的对象池
  • 您可以编写一个包含为您返回连接的代码的单例,这样您就不必知道您正在使用数据源

  • 这完全取决于用例、您对java的熟悉程度、应用程序的总体设计等。

    。。。如果servlet需要共享完全相同的连接,为什么要使用池?你真的确定这就是你想要的吗?这似乎是一个正在形成的并发地狱。那么如何让他们共享相同的连接呢?我相信这是一个重大的误解。该池已在应用程序启动期间创建和存储!使用
    context.lookup()。。。更干净的方法是使用
    @Resource