转自
http://hi.baidu.com/minordragon/blog/item/5c928f7e0666f23d0dd7da0a.html
以下两个bean的配置是下面要用到的。
可能还有其他很多模块。<bean id="fundService"/>可能只是其中的模块。
第一种:配置声明式事务的方法如下。也是我们最常用的方法了,它适用于你的库表比较少的情况下。
以下可能还有其他的xxxServiceDAOProxy.大家可以看出针对每一个功能模块配置一个业务代理服务。如果模块多大话,就显得代码有点多了,发现他们只是稍微一点不一样。这时我们就应该想到继承的思想。用第二种方法。
第二种:配置声明式事务的方法如下。这种情况适合相对比较多的模块时使用。
而具体的模块可以简单的这样配置。
只要指明它的parent(父类)就可以了。
父类一般把abstract="true",因为在容器加载的时候不需要初始化,等到用的时候再有它的子类调用的时候,再去初始化。
这样配置的话,如果有多个像fundService这样模块时,可以少些很多重复的代码。
第三种:配置声明式事务的方法如下。主要利用BeanNameAutoProxyCreator自动创建事务代理
这种方法主要利用了拦截器的原理。
前三种方法一般都必需指定具体的模块bean.
如果模块过多话,比如一个大型的网站一般有几十个模块,我们就得考虑用第四种的配置方式了。自动创建事务代理的方式了。
第四种:配置声明式事务的方法如下。
自动代理还有一种用法就是结合正则表达式和advice使用。
这个方法可以针对具体的模块进行拦截并进行事务处理。
在你的实际项目中,你可以根据你的情况选用不同的方法。