【发布时间】:2016-11-15 16:13:52
【问题描述】:
我想了解现实生活中的企业应用程序(例如,使用 Spring Framework 的 Web 应用程序)应该由谁来管理数据源?我可以想到两种方法:
(i) Spring 配置中定义的数据源,应用程序可以根据需要从 Spring 容器中获取数据源。
(ii) 在 web-container 中定义数据源(例如),然后应用程序可以从容器中获取数据源。
现在,我有以下问题:
Q1) 在场景 (i) 中,我相信我们可以使用 Spring 的 DI 来注入数据源,因为它是由 Spring 管理的。对吗?
Q2) 在场景 (ii) 中,获取数据源的唯一方法是使用 JNDI 查找,因为数据源是在容器中配置的,因此 Spring 将无法进行 DI。对吗?
Q3) 当Data source由Spring Container管理时,是否可以处理connection pooling、global transaction等,如果可以,如何处理?它是否在内部使用一些第三方库来实现这一切?
非常感谢任何有关此的详细信息。
【问题讨论】:
-
1.是的,2. 不(你的东西
<jee:jodi-lookup />是干什么用的),3. 是的,取决于你配置的数据源(例如,参见 HikariCP)。
标签: spring spring-mvc