哪种设计模式可以帮助我实现连接池

时间:2014-11-27 12:50:47

标签: java multithreading spring jvm

我正在尝试为工厂类创建一个连接池,这个设计模式可以帮助我创建连接池.user希望在外部指定没有连接和最大连接。我搜索了一段时间,有些人建议使用Singleton或者将初始化代码放在一些静态块中。但其他人说单身人士很糟糕。那么,什么应该是用于连接池的正确设计模式?感谢。

3 个答案:

答案 0 :(得分:4)

Singleton因某些原因而不好,例如通常你不能注入Mock对象。如果你提供一种机制(或不需要)来模拟测试它,那么我没有看到问题。

请注意,有很多优秀的连接池可用,我首先建议您查看现有的连接池。

答案 1 :(得分:1)

数据库连接池

最初在我的应用程序中我使用apache-commons-dpcp并且我遇到了很多连接问题,经过长时间的分析后我使用了bonecp。我建议bonecp连接轮询。并且严格不要使用Singleton patten。一旦您的申请上线,它将为​​您带来巨大的痛点。

TCP连接池

对于TCP池我建议使用Netty并查看Apache MINA

答案 2 :(得分:1)

正如之前的评论者所建议的那样,使用像Apache DBCPC3P0BoneCPHikariCP这样的库。

但是如果你想“发明你自己的连接池”并理解如何为教育目的而做,那么从单线开始并扩展它以保存预配置数量的实例。