论坛首页 Java企业应用论坛

基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。

浏览 25632 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-03-07  
magichorse 写道
@Transactional放到具体方法上就好了,也就是只在用时才开启。


对,还是建议使用schema风格的
0 请登录后投票
   发表时间:2012-03-07  
jinnianshilongnian 写道
magichorse 写道
@Transactional放到具体方法上就好了,也就是只在用时才开启。


对,还是建议使用schema风格的



楼主,你能不能上传一个Spring+hibernate的注解实现的源代码,我比较菜,搞了好几天还是没完全搞出来,在此谢过
0 请登录后投票
   发表时间:2012-03-07  
magichorse 写道
@Transactional放到具体方法上就好了,也就是只在用时才开启。

0 请登录后投票
   发表时间:2012-03-07  
stevenjohn 写道
jinnianshilongnian 写道
magichorse 写道
@Transactional放到具体方法上就好了,也就是只在用时才开启。


对,还是建议使用schema风格的



楼主,你能不能上传一个Spring+hibernate的注解实现的源代码,我比较菜,搞了好几天还是没完全搞出来,在此谢过


我博客有的 去看看
0 请登录后投票
   发表时间:2012-03-07  
通俗易懂,虽然有些没怎么接触
0 请登录后投票
   发表时间:2012-03-07  
顺便也讲讲AOP
0 请登录后投票
   发表时间:2012-03-08  
litianyi520 写道
顺便也讲讲AOP

看我博客
0 请登录后投票
   发表时间:2012-03-08  
分析的很不错
0 请登录后投票
   发表时间:2012-03-08  
jinnianshilongnian 写道
yanwt 写道
楼主,嵌套的事务怎么解决?
比如有个获取updateList的方法,一个update方法,updateList中会调用update方法更新,如果在updateList中设置Transactional时就要遍历所有集合之后提交事务,如果想一条一条提交有没有什么好办法?


//标识为Required
updateList
    //标识为RequiresNew
    update

建议你单独写个方法来标识为RequiresNew,如
    //标识为RequiresNew
    updateSingle

这个updateList 中 调用updateSingle即可,并且需要如下形式(否则无法利用事务)
   ((I×××Service)AopContext.currentProxy()).updateSingle()

需要如下配置(暴露Aop代理到当前线程)支持 从而支持AopContext.currentProxy()
<aop:aspectj-autoproxy expose-proxy="true"/>


学习了
0 请登录后投票
   发表时间:2012-03-08  
简单一句话,jdk动态代理代理的对象必须有接口,而cglib是否有接口都可以进行代理,spring默认使用jdk代理。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics