3

我正在学习 JDBC,目前正在研究 JDBC DataSource 和连接池。您是否需要确保您创建的数据源只在应用程序中创建一次,然后与所有需要引用数据源的类共享?或者它在幕后做了什么神奇的事情?

如果您在 Java EE 服务器或 Spring 中配置数据源,它是否只创建一个数据源对象?JNDI 中的对象是单例的,还是每次需要时都会获得一个新对象?

4

1 回答 1

2

DataSource实例并不神奇。如果您创建其中两个,您将拥有两个,并且每个都有自己的连接池。使用 JNDI,您可以在名称下注册一个对象,因此根据定义,每次都会给出相同的对象。你可以认为它或多或少是夸大其词HashMap。在 Spring 中,单例是默认范围,因此DataSource将创建一个单例并在使用它的所有对象之间共享,除非您更改 bean 的范围。

于 2013-03-04T17:57:22.893 回答