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、对于经常会替换数据源连接信息的,感觉在项目中配置方便些
本文出自 “小李广之博客” 博客,请务必保留此出处http://6817977.blog.51cto.com/6807977/1597090
原文地址:http://6817977.blog.51cto.com/6807977/1597090