我正在用Java开发一个web应用程序,它需要与数据库连接。良好的资源管理是非常重要的。应用程序将位于Tomcat 6 servlet容器中,我已经实现了BoneCP来管理连接(我不能使用Spring)。
我读过JNDI查找DataSource太昂贵了,我正在考虑创建一个DataSource对象的单例,只获取一次JNDI资源,并为将来的连接返回相同的DataSource。
问题:只创建一次DataSource,并从同一个DataSource获得连接是个好主意吗?--我不想得到相同的连接,只想得到相同的DataSource。
(谢谢;)
发布于 2013-01-16 16:09:56
使用池数据源,如下所述:
http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html
发布于 2013-06-25 15:10:33
是的,正如Renjith所建议的,您只需要创建一次DataSource。我昨天也碰到了同样的问题。每次在我的"getConnection“方法中,我注意到我不必要地创建了一个新的InitialContext和DataSource。我修改了Connection类,使其具有一个静态代码块,它只在类第一次加载时才创建DataSource对象(在Proper usage of JDBC Connection Pool (Glassfish)中阅读BalusC的答案之后)
我考虑过使用旧的ServiceLocator模式(请参阅Pascal在上面的链接中的答案),但我觉得这对我的需求来说有点过分了。
另一种可能是,您也可以在DataSources上使用带有注入的DataSources注释,但是似乎不使用Tomcat 7。
https://stackoverflow.com/questions/14362605
复制相似问题