前人写的spring事务配置文件。有点看不明白啊。
expression="execution(* com.company..*.facade.*.*(..))" 
这个到底是在哪一层做了事务控制呢?
我们系统有四层
aciton-facade-service-dao是说只在facade层做了事务。还是说facade service dao层都做了

解决方案 »

  1.   

    最好是在service层吧 因为那里是业务逻辑层 会引起错误 错误的时候要进行回滚
    <aop:config>
    <aop:pointcut id="serviceMethods"
    expression="execution(* com.xxx..service.*.*(..))" />
    <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods" />
    </aop:config>
      

  2.   

    expression="execution(* com.company..*.facade.*.*(..))"  是在facade层做的事务。。拦截com.company....facaed 包下所有类的所有方法
      

  3.   

    这样做的话。在service层就不会出现事务问题咯?
    因为我都是action 调 facade  facade 调service service再调dao
      

  4.   

    你就看*.*(..)之前的字符串 就行了
    也就是说  service-dao 都拦截了
    不过DAO 直接操作DB 本身就会回滚的 有点多余 或者他的某些DAO 有特殊操作
      

  5.   

    只做了facade层的事务。serivce层也会拦截啊