当前位置:编程学习 > JAVA >>

java web项目分层问题

SSH整合时,一般分为Action层,service层,dao层。事务的边界,一般设在service层的方法上,而且Action层一般不写业务逻辑代码,所以个人认为一个Action的方法就应该对应一个Service的方法,而且这个Action的方法就只调用它对应的service方法,否则同一个Action方法中会出现多个事物。但一个Action可能要做多个动作,如先校验,再插入,再查询,而且Action要得到校验的结果,也要获得查询的结果。那怎么写service层的方法呢?我觉得有下面几种方式:
    方式一:把这三个逻辑放在一个service的方法的话,所有逻辑都写在这个方法中,那这个方法就要返回所有的信息,包括校验结果,查询结果等,那这个service的方法的返回值是什么呢?是一个MAP<string,Object>可以,但感觉很别扭。
    方式二:把这三个逻辑分别写在三个service方法中,但是这样的话如果几个逻辑中有两个以上的涉及保存或更新的话,也就是涉及到事物的话,就会不在一个事物中。
    方式三:只把涉及保存和更新的逻辑放在一个service方法中,但是这样的话涉及保存更新的逻辑可能不是相邻的,也没法把他们放在一个service方法中。
    所以我感觉哪种方式都不太合理。不知道大家在自己的项目中是怎么写的。希望有经验的同志们,帮忙解答一下,大家共同借鉴和探讨一下。 --------------------编程问答-------------------- 方法三,但有区别 检查什么的必须分开写。保存更新其实是一个东西,你一个Action方法如果是整体事务的话,那么必须把保存和更新写一块儿。用 List<Object> 存放,最后进行saveOrUpdate方法就好了。 
要插入之后再查询的,可以跳转Action或者是直接在插入事务结束后,增加查询代码。 --------------------编程问答-------------------- 说是说分3层 其实大多数项目 service层跟dao层都在一起了
dao层都是封装好了的
service调用就好
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,