论坛首页 Java版 Spring

一个实际应用的问题

浏览 881 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-01-19

我的系统是用Tapestry、Hibernate、Spring搭建的,通过Spring提供的事务管理类对Hibernate进行事务管理,事务管理变成了系统的一个Aspect,现在,我想加入另外一个Aspect:Logging。

我为Service的代理(org.springframework.transaction.interceptor.TransactionProxyFactoryBean)设置了后置拦截器(postInterceptors)

配置如下:(气死,贴出来的东西全走样了,不贴了)

配置情况就是设置postInterceptors,次序是HibernateInterceptor,****Advisor(for logging) 

拦截器链是:HibernateInterceptor、然后是Logging的Advisor(注:该拦截器使用了AfterReturningAdvice)

如果事务出现异常,则拦截的方法中断,Logging不会执行,这是系统需要的,但问题是,Logging本身所做的工作也是要向数据库插入记录,如果业务方法执行成功了,但Logging访问数据库时失败了,就变得成功的操作没有对应的日志了。但如果吧Logging放到业务逻辑里面,就变得增加了耦合,使业务逻辑带有了多余的东西,无法轻松切换Logging。

请问大家对于这个问题,如何解决?

   
最后更新时间:2007-01-19
用文本。。。
   
0 请登录后投票
最后更新时间:2007-01-20
或则使用xml格式
   
0 请登录后投票
最后更新时间:2007-01-22
其实配置文件不重要,我已经把配置说得很清楚了
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐