Java Wicket和第三方连接池实现
我们应该如何构造利用第三方连接池的Wicket应用程序?(例如BoneCP、c3P0、HikariCP)。在过去,假设web应用程序将部署在ApacheTomcat上,我们只会通过JNDI使用默认的Tomcat池 考虑到:Java Wicket和第三方连接池实现,java,wicket,connection-pooling,Java,Wicket,Connection Pooling,我们应该如何构造利用第三方连接池的Wicket应用程序?(例如BoneCP、c3P0、HikariCP)。在过去,假设web应用程序将部署在ApacheTomcat上,我们只会通过JNDI使用默认的Tomcat池 考虑到: 我目前正在查看的库(HikariCP)没有 对Tomcat/JNDI()的显式支持 设置JNDI本身的方法因应用服务器而异 (比方说Tomcat vs Jetty,我上周末一直在努力 jetty JNDI查找工作,并放弃) 是否有跨应用程序服务器的方法在Wicket应用程序中
public class WicketApplication extends WebApplication {
//
private SomePoolObject poolInstance;
//
public static Connection getConnection() {
if (poolInstance == null) {
poolInstance = ...; //create pool
}
return poolInstance.getConnection();
}
}
提前谢谢 我从未使用过Wicket,但它似乎带有嵌入式Jetty。此链接:似乎指示如何在Jetty中设置JNDI数据源。那么,让Wicket使用JNDI来处理这个问题吗?Wicket可以部署到任何Servlet容器中,所以jetty不是必需的。问题是,每个容器都有不同的方法来设置JNDI+连接池,所以我想知道我在帖子中介绍的方法是否适用于wicket应用程序(优点是),所以我不必担心我是否必须移动到另一个容器中。我认为上述方法是有效的。但我也怀疑,如果一些用户通过其应用服务器的标准机制(其中“标准”实际上是该平台的专有机制)配置了数据源,而您的应用程序没有获取该数据源,那么他们可能会感到惊讶。虽然从属性文件加载池配置,而不是在应用程序中对其进行硬编码,可能会在一定程度上缓解这一问题。