我试图了解现实生活中的企业应用程序(例如,使用 Spring 框架的 Web 应用程序)谁应该管理数据源?我可以想到两种方法:
(i) Spring配置中定义的数据源,应用程序可以根据需要从Spring容器获取数据源。
(ii)在 web-container 中定义数据源(例如),然后应用程序可以从容器中获取数据源。
Q1)在场景(i)中,我相信我们可以使用 Spring 的 DI 来注入数据源,因为它是由 Spring 管理的。这是对的吗?
Q2)在场景(ii)中,获取数据源的唯一方法是使用JNDI查找,因为数据源是在容器中配置的,因此Spring将无法进行DI。正确吗?
Q3)当数据源由Spring容器管理时,它是否能够处理等等connection pooling
,global transaction
如果可以,如何处理?它内部是否使用一些第三方库来实现这一切?
任何有关此的详细信息都非常感谢。
基本上:
可以在 Spring 配置中引用 JNDI 资源,因此 Spring 将为您进行查找,并且该资源可用于 DI。
您可以使用第三方库(例如Apache commons-dbcp)为 Spring 管理的数据源进行连接池(我已经在企业项目中这样做了)。
Spring使用内置的TransactionManager支持DB事务管理。根据文档,似乎 JPA 仅在数据源在容器中定义时才可用。
归档时间: |
|
查看次数: |
656 次 |
最近记录: |