关于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深度历险这种通俗易懂的经典。嘿嘿
谢谢了