1. 按照你的设计来说,应该是定义在Facade层,其实按我的想法,如果AService和BService
   关系那么紧密地话,那么应该将它们的功能合并在一个ABService而不是将其独立
2. 即使将事务设置在service层,使用Spring的声明式事务,那么在一个service中调用其它的service也不会引起事务嵌套,关于这一点你可以写一个小程序验证一下
3. 关于接口的问题,不推荐
   首先,即使是事务,也不需要一定是接口,类也可以动态代理的
   其次,分离职责,降低耦合,也就是Service类是不需要
知道你的数据存储到哪,需不需要缓存等等

解决方案 »

  1.   

    我没有看你的问题,只是看了一下你的标题。是这样的,我个人觉得,spring中事务不属于任何一个层次。Spring的思想就是由容器来控制事务,所以在程序代码中,不存在任何关于事务操作的代码。事务是声明式的,是在配置文件中配置的。
      

  2.   

    因为IDE操作的不方便而不使用接口,实在是....
    既然接口都不想用了,你这个所谓Facade层能提供什么较高的价值,深表怀疑中。
    简单就是美啊,Action<-->Service<-->Dao。
    Action什么都不干,只是一个调用Service入口,事务边界为Service就可以,Service不要相互调用,使用一个或多个Dao完成业务操作。
    其实如果使用hibernate之类的ORM产品的话,Dao层干脆都可以不要的,ORM框架已经做了很多的事情。