锁定老帖子 主题:关于Action的事务
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (15)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-11
lifeier 写道 竹隐江南 写道 lifeier 写道 jx822 写道 [quote="lifeier"]水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。
struts也可以控制事务,或者使用JTA,我指的是不用Spring的aop实现! 你这样,我还是要说你菜。还不服。不用spring,那么你总体的业务逻辑在哪里?在struts的action的话,可以用filter和拦截器实现类似aop的功能。真的不知道你怎么学的j2ee,比我这个培训过几个月的还菜。 难道你们培训老师给你们说每个项目必须用Spring了?有木有啊,如果技术确定不用Spring了,那你是不是就不搞了- -! filter和拦截器。。。 lz只是水平菜,你就是语言理解能力问题了,换句话就是智商问题了。 你除了知道些Spring之外能不能学些别的?不懂就请你别发言,我看在这里是你最菜吧!明显智商有问题! |
|
返回顶楼 | |
发表时间:2011-05-11
yin_bp 写道 建议采用bbossgroups 中aop和持久层框架相结合的事务管理,非常好用和便捷,想在哪里做事务控制就在哪里做事务控制,呵呵,前提是符合事务控制的常理就可以,还有严格的事务泄露检测机制,详情请看bbossgroups培训ppt中的
事务管理部分(第58-70页): http://dl.iteye.com/topics/download/5e8d0f07-53c2-34f1-a0d8-ee43369774ea 非常感谢你的ppt :) |
|
返回顶楼 | |
发表时间:2011-05-11
最后修改:2011-05-11
jx822 写道 yin_bp 写道 建议采用bbossgroups 中aop和持久层框架相结合的事务管理,非常好用和便捷,想在哪里做事务控制就在哪里做事务控制,呵呵,前提是符合事务控制的常理就可以,还有严格的事务泄露检测机制,详情请看bbossgroups培训ppt中的
事务管理部分(第58-70页): http://dl.iteye.com/topics/download/5e8d0f07-53c2-34f1-a0d8-ee43369774ea 非常感谢你的ppt :) 不客气,希望还过得去,不要因为毫无意义而白白浪费你的时间,呵呵,那就罪过了 |
|
返回顶楼 | |
发表时间:2011-06-23
或者自己用事物吧!
|
|
返回顶楼 | |
发表时间:2011-08-01
lifeier 写道 水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。
你真的确你比楼主强吗?出了spring你还会什么啊?没有spring就不能控制事务了?不要随意打击别人,素质问题。 |
|
返回顶楼 | |
发表时间:2011-08-08
不要使用spring,struts,Mybatis之类.写一个简单的servlet+JDBC.你看怎么进行事务控制的.So easy.
重要的是最深处的原理 |
|
返回顶楼 | |
发表时间:2011-08-08
最后修改:2011-08-08
//用来存放当前线程中的Connection
public class TxHolder { private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>(); public static void setCurrentConnection(Connection connection) { threadLocal.set(connection); } public static Connection getCurrentConnection() { return threadLocal.get(); } public static void removeCurrentConnection() { threadLocal.remove(); } } //实现一个拦截器,可以使用过滤器,或者AOP实现。 @InterceptorOrder(1) public class TxInterceptor implements Interceptor { public void intercept(Execution execution, InterceptorChain chain) throws Exception { Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:test", "sa", ""); connection.setAutoCommit(false); try { TxHolder.setCurrentConnection(connection); chain.doInterceptor(execution); connection.commit(); } catch (Exception e) { connection.rollback(); throw e; } finally { TxHolder.removeCurrentConnection(); } } } 英雄不问出处,话不多说。 |
|
返回顶楼 | |
发表时间:2011-08-10
最后修改:2011-08-10
哎 算了,路过
|
|
返回顶楼 | |
发表时间:2011-08-10
设计模式种的Proxy模式
|
|
返回顶楼 | |
发表时间:2011-08-11
我们用程序说话,废话不多说了,完全可以用过滤器在ACTION中控制事务,我们只是把事务边界延长了而已;当然,我们既然有SPRING这么好的东东,现在项目中都是SPRING在SERVICE层控制事务啦
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { try { chain.doFilter(request, response); Session session = HibernateUtils.getCurrentSession(); if (session != null) { session.getTransaction().commit(); } } catch (RuntimeException e) { Session session = HibernateUtils.getCurrentSession(); if (session != null) { session.getTransaction().rollback(); } throw e; } finally { Session session = HibernateUtils.getCurrentSession(); if (session != null) { HibernateUtils.closeCurrentSession(); } } } |
|
返回顶楼 | |