Spring 应用程序经常部署在 Java EE 应用服务器中,如 WebSphere、 JBoss 或甚至像 Tomcat 这样的 Web 容器中。这些服务器允许你配置通过 JNDI 获取数据源。这种配置的好处在于数据源完全可以在应用程序之外进行管理,这样应用程序只需在访问数据库的时候查找数据源就可以了。另外,在应用服务器中管理的数据源通常以池的方式组织,从而具备更好的性能,并且还支持系统管理员对其进行热切换。
利用 Spring,我们可以像使用 Spring bean 那样配置 JNDI 中数据源的引用并将其装配到需要的类中。位于 jee 命名空间下的 <jee:jndi-lookup> 元素可以用于检索 JNDI 中的任何对象(包括数据源)并将其作为 Spring 的 bean。例如,如果应用程序的数据源配置在 JNDI 中, 我们可以使用 <jee:jndi-lookup> 元素将其装配到 Spring 中,如下所示: