http://yonguo.iteye.com/blog/115221

1)Spring在第三方依赖包中包含了两个数据源的实现类包,DBCP数据源 , C3P0数据源,可以在spring中直接配置使用;

2)获取JNDI数据源 :如果应用配置在高性能的应用服务器(如WebLogic或Websphere等)上,我们可能更希望使用应用服务器本身提供的数据源;

   应用服务器的数据源,使用JNDI开放调用者使用



3) spring使用多数据源,其实就是使用动态数据源,进行切换

   http://blog.csdn.net/wangpeng047/article/details/8866239


4)Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用;

5)使用spring注解式事务管理(也是声明式事务);


6)现有项目是如何使用事务的;

    spring通过jndi 获取数据源 ---》根据数据源构建数据源工厂(此步可省略)----->根据数据源工厂构建事务管理器-----》

        然后通过<tx:annotation-driven transaction-manager="txManager" />

       就可以使用注解来使用事务;

7)spring3注解的方式不支持两个数据源,spring4可支持


8)使用JTA吧,,可以配置两个数据源,使用的就是同一个事务;

     即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据

      但是与本地事务相比,XA 协议的系统开销大,在系统开发过程中应慎重考虑是否确实需要分布式事务。若确实需要分布式事务以协调多个事务资源,则应实现

     和配置所支持 XA 协议的事务资源,如 JMS、JDBC 数据库连接池等




http://progress.iteye.com/blog/612222


9) 数据源是配在容器中还是配置在项目中: 


1、在web容器中管理数据源,那么系统代码就不会触及数据源信息,这样能够保护正式环境的数据库安全。比如说开发人员只要在容器中配置测试数据源,以后代码变更基本上不需要修改这部分。

     如果在项目中配置数据源,版本库上的配置信息就会被开发人员触及到,随时会产生误操作


2、很多容器里面配置的数据源,一旦配置正确,就会对敏感信息加密。而在项目配置数据源,需要特殊处理。


3、在项目中配置的数据源基本上采用第三方库(dbcp、c3p0、druid等),随时可以替换,这些开源产品都是专注于连接池的自身管理优化。而web容器配置的数据源有的会考虑整体的综合性能以

    及连接情况的监控,像weblogic提供的控制台提供了很好的管理界面。


4、对于经常会替换数据源连接信息的,感觉在项目中配置方便些