【发布时间】:2016-06-21 17:26:58
【问题描述】:
我有这个带有连接池的单例。
public enum ConnectionPool {
INSTANCE;
private DataSource ds = null;
ConnectionPool() {
try {
final Context initCtx = new InitialContext();
ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/test");
} catch (NamingException e) {
e.printStackTrace();
}
}
public Connection getConnection() throws SQLException {
return ds.getConnection();
}
}
我应该同步 getConnection() 以防止从不同线程获取相同的实例吗?看起来它已经被 Tomcat 同步了,但我不确定(我使用的是 Tomcat 8)。
【问题讨论】:
-
你应该使用单例模式。
-
@RaghuKNair,这是一个单身人士。
-
单身永远不是正确的模式。 stackoverflow.com/questions/137975/…
-
我这辈子从来没有同步过。
-
只是想知道在创建 ConnectionPool 时是否有异常,您可能会得到 NPE,因为 ds 为空
标签: java sql jdbc connection-pooling