Singleton和DataSource
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Singleton和DataSource相关的知识,希望对你有一定的参考价值。
我正在使用Java开发Web应用程序,它需要与数据库建立连接。良好的资源管理非常重要。应用程序将在Tomcat 6 servlet容器中,我已经实现了BoneCP来管理连接(我不能使用Spring)。
我已经读过DataSource的JNDI查找过于昂贵,而且我正在考虑创建一个DataSource对象的单例,只获取一次JNDI资源,并为将来的连接返回相同的DataSource。
问题:仅创建一次DataSource并从同一DataSource获取连接是一个好主意吗?我不想获得相同的连接,只有相同的DataSource。
谢谢 ;)
使用池化数据源,如下所述:
http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html
是的,正如Renjith建议的那样,你只需要创建一次DataSource
。我昨天遇到了同样的问题。每次在我的“getConnection”方法中,我都注意到我正在不必要地创建一个新的InitialContext和DataSource。我修改了我的Connection Manager类,以获得一个静态代码块,只有在第一次加载类时才会创建DataSource对象(在读取BalusC在Proper usage of JDBC Connection Pool (Glassfish)中的答案之后)
我想过使用老式的ServiceLocator
模式(参见上面链接中Pascal的回答),但我觉得这对我的需求来说太过分了。
另一种可能性是你也可以在DataSources上使用注入的@Resource
注释,但这似乎不适用于Tomcat 7
。
以上是关于Singleton和DataSource的主要内容,如果未能解决你的问题,请参考以下文章
java当中JDBC当中请给出一个SQLServer DataSource and SingleTon例子
java当中JDBC当中请给出一个Oracle DataSource and SingleTon例子
项目启动报错Failed to configure a DataSource: 'url' attribute is not specified and no embedde(代码片段