首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java servlets和数据库连接池

Java servlets和数据库连接池
EN

Stack Overflow用户
提问于 2009-10-10 15:36:23
回答 5查看 4.5K关注 0票数 4

看看web上的连接池示例,它们都是在每个servlet的基础上实现连接池。因此,每个servlet都有自己的数据库连接池。我的问题是,为什么这比数据库连接的全球池更可取?由于全局池似乎比每个servlet池更有效率。

另外,因为我正在考虑实现这样一个池。有没有办法在servlet之前初始化一个类(我使用的是jetty btw)?我刚刚开始servlet开发,但这似乎对其他事情也很有用,比如配置。否则,我将使用某种类似于单例的模式。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-10 15:50:46

1)我要说的是,标准实践是在上下文描述符中将连接池设置为JNDI资源,这不是每个servlet都要做的事情。

2)你需要实现并声明一个ServletContextListener

票数 7
EN

Stack Overflow用户

发布于 2009-10-10 16:18:38

老实说,我真的不知道你在说什么。也许你可以提供你看过的样品。

对我来说,“真正的”连接池应该是完全与Servlet无关的,并且在每个Servlet的基础上使用连接池是一个更多的使用细节(这是一个糟糕的细节)。只需查看DBCPc3p0,即可获得可在“容器外”上下文中使用的连接池的良好示例。

还要注意,大多数(如果不是全部)容器实际上都提供了自己的连接池实现(有时基于前面提到的示例),我看不出有什么好的理由不使用它们。使用它们的标准方法是使用JDNI命名服务注册一个DataSource。如今,DataSouce大部分时间都是通过IoC注入的。在过去,经常使用Service Locator模式。

以Jetty为例,请查看文档中的DataSource Examples

票数 3
EN

Stack Overflow用户

发布于 2009-10-10 15:48:49

我的问题是,为什么这比数据库连接的全局池更可取?

不是的!所有servlet应该共享池中的连接!

也是如此,因为我正在考虑实现这样一个池。

已经有一些方法(Spring IoC)可以注入容器管理的池化连接。

。有没有办法在servlet之前初始化一个类(我使用的是jetty btw)?

IoC容器可以引导每个资源和servlet!

您可以通过注册一个Spring和一个包含映射和servlet的dispatcherServlet作为bean定义来连接servlet!

如果只想插入连接并保留servlet的其余部分不变,请使用以下定义:

代码语言:javascript
复制
<bean name="simpleServletHandlerAdapter"
class="org.springframework.web.servlet.handler.SimpleServletHandlerAdapter" />


<bean name="simpleServletPostProcessor"
class="org.springframework.web.servlet.handler.SimpleServletPostProcessor" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1548249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档