我正在创建一个应用程序,它将使用连接池进行数据库连接,并且我想确保只创建一个连接池供整个应用程序使用。我打算创建一个单例以确保可以打开一个连接池,但许多人建议避免单例。我的替代方案是什么?对于调用我的连接管理器的客户来说,这会是什么样子?
最佳答案
如果您正在运行独立应用程序,我没有发现 Singleton 有问题。这完全取决于您如何确保它是单实例。
恕我直言,Enum 是创建 SingleTon 的最佳选择。当然,我假设您正在对方法进行正确的同步,以避免同一连接共享多个客户端和不需要的用例
你不需要重新发明轮子,你可以使用Apache DBCP Connection Pool和 sample
来自SO的一个回答
如果您在应用程序服务器中运行,那么单例就有点大材小用了。在应用程序服务器中,由于集群,无法保证单例。仅对每个 JVM 进行保证。建议使用连接池的数据源。
关于java - 确保整个应用程序有一个连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413590/