论坛首页 Java企业应用论坛

关于Action的事务

浏览 12284 次
精华帖 (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之外能不能学些别的?不懂就请你别发言,我看在这里是你最菜吧!明显智商有问题!
0 请登录后投票
   发表时间:2011-05-11  
yin_bp 写道
建议采用bbossgroups 中aop和持久层框架相结合的事务管理,非常好用和便捷,想在哪里做事务控制就在哪里做事务控制,呵呵,前提是符合事务控制的常理就可以,还有严格的事务泄露检测机制,详情请看bbossgroups培训ppt中的
事务管理部分(第58-70页):
http://dl.iteye.com/topics/download/5e8d0f07-53c2-34f1-a0d8-ee43369774ea

非常感谢你的ppt :)
0 请登录后投票
   发表时间: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 :)


不客气,希望还过得去,不要因为毫无意义而白白浪费你的时间,呵呵,那就罪过了
0 请登录后投票
   发表时间:2011-06-23  
或者自己用事物吧!
0 请登录后投票
   发表时间:2011-08-01  
lifeier 写道
水平真够菜的。事务都是在spring中控制的。aop的方式控制的。你怎么学的java。

你真的确你比楼主强吗?出了spring你还会什么啊?没有spring就不能控制事务了?不要随意打击别人,素质问题。
0 请登录后投票
   发表时间:2011-08-08  
不要使用spring,struts,Mybatis之类.写一个简单的servlet+JDBC.你看怎么进行事务控制的.So easy.
重要的是最深处的原理
0 请登录后投票
   发表时间: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();
        }
    }
}


英雄不问出处,话不多说。


0 请登录后投票
   发表时间:2011-08-10   最后修改:2011-08-10
哎 算了,路过
0 请登录后投票
   发表时间:2011-08-10  
设计模式种的Proxy模式
0 请登录后投票
   发表时间: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();
}

}
}
0 请登录后投票
论坛首页 Java企业应用版

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