我正在尝试使用Postgresql和Spring。
它的编写方式是为即将执行的每个查询/特定查询集启动DataSource实例。
所以,问题是,在应用程序的整个生命周期中只保留一个实例或者现在这样做是不是一个好主意?
如果在这里使用了很多实例,这会导致内存泄漏吗?
答案 0 :(得分:1)
为每个请求实例化一个新DataSource
是一个坏主意,因为建立与数据库服务器的连接的开销。您可以选择两种设计模式:
DataSource
。优点是您可以使用原始应用程序中使用的所有详细信息来定制实例。缺点是您可能需要许多会话 - 在服务器和客户端上占用资源 - 在请求之间的大部分时间内可能闲置 - 但仍然耗尽这些资源。澄清:
role
他们应该在数据库中设置自己的角色名称和密码
打开连接:连接池是不可能的,你
应该为每个会话创建一个DataSource
。role
- 请说" webuser" - 然后您可以使用连接池与该角色的详细信息。如果您的应用程序具有以下几个角色,这也会起作用:" webuser"," webmanager"," webadmin"。然后,您必须为JNDI存储中的每个角色创建DataSource
。