关于SPRING的事务管理_求助

小弟最近搭一个小系统,想使用SPRING的DAO封装-JDBCTemplate,并且想用上声明式事务管理。
因为之前没有实际运用,只是阅读了SPRING的文档,感觉还是有很多疑问,请问一下,大师们有没有用SPRING的事务管理用的比较熟的,有没有什么心得。
在下有几点疑问:
1.现在有业务逻辑层(SERVICE层)和数据访问层(DAO层),SERVICE是主要业务逻辑,其中操作数据库的部分调用DAO来实现,这样的话我的事务管理应该应用在DAO的方法中还是SERVICE的方法中,DAO中的方法感觉是一些元操作,而SERVICE中一个逻辑功能中除了一些算法逻辑,还会调用到DAO的多个方法来操作数据库,我的理解是事务控制应该加在SERVICE的方法上,这样一个逻辑功能要么成功调用,要么失败。
2.关于事务管理的事务传播,在SPRING的文档和网上的一些文章中到处都是,看了不少,但还是感觉很模糊,我的感觉是事务传播可能涉及到多个方法在相互调用时可能都需要事务控制,这样就存在事务传播的问题,感觉如果是简单的系统的话,按照默认的事务传播模式就可以,但是什么时候需要用到其他的事务传播模式呢?我感觉这个问题透了,可能有助于理解第1个问题
3.关于声明式的事务管理,根据事务管理的配置,我想理解什么时候算是一个事务开始了,什么时候算是事务结束了。
是不是根据所配置的信息,只要执行的某个方法符合SPRING配置中expression的execution所配置的方法,那么SPRING就会开启事务,其中可能会有事务传播可能没有,方法执行完,事务就结束了是吗?
4.因为HIBERNATE用的不熟,再加上系统比较简单,想起O/R映射来就头大,所以想暂时简单的实现,但是还是想面向对象的去编程,不想和数据库的数据直接打交道,因为之前用过SPRING的JDBCTemplate,觉得还挺方便,而且最近认真学习了一下,发现SPRING也提供了一些接口来实现数据和对象的转换,觉得也挺方便,当然SQL还是自己写。这样是否可行?
5.因为公司刚开始搞软件,连搞需求的人也没有,我想研究一下设计方面的东西,大家能不能提供点学习建议,JAVA设计模式看了一半,对基本的设计模式还懂一些,以后肯定还要学习+实践,暂时想先系统效率的学习一下UML,学习一下设计,而且类图、用例图什么的可能对学习设计模式也有帮助。大师们能不能给点建议,或者是有比较经典的书籍有没有推荐一下的。比如JAVA深度历险这种通俗易懂的经典。嘿嘿
谢谢了

在Service方法这里激活事务,我在非堵塞的并发编程中说了,事务是并行计算的大敌,事务是癌症,过度扩散会像癌细胞那样杀死系统,所以,尽量不要扩大化使用事务,能不用就不用,在你目前没有熟悉的情况下,试用一下。

事务相当于顺序化的锁,是一种强迫,不是事物的自由本质状态,是人的纠结固执的体现,或者说是逻辑得以实现的一种结果吧。

2011年10月09日 13:40 "@banq"的内容
在Service方法这里激活事务,我在非堵塞的并发编程中说了,事务是并行计算的大敌,事务是癌症,过度扩散会像癌细胞那样杀死系统,所以,尽量不要扩大化使用事务,能不用就不用,在你目前没有熟悉的情况下,试用一下。事务相当于顺序化的锁,是一种强迫 ...

谢谢banq,理解了,你所讲的事务的弊端就如同并行中大粒度的同步,会影响性能。我的焦点还在技术的细节上,还应该向你学习,感谢