论坛首页 Java企业应用论坛

关于项目使用SSH开发存在的问题总结

浏览 3053 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (15)
作者 正文
   发表时间:2008-10-28  
1.太过度依赖Dao层共通的baseDao;和业务相关的hql语句不应该写在Service类中。

2.异常处理还有待验证,Action中充斥中大量的try{}catch{}。

3.程序日志通过Aop实现,需要验证。丧失了日志的真正意义。

以上是目前我发现项目的问题,希望大家多提建议,非常感谢。
   发表时间:2008-10-28  
你是在action中实现业务逻辑?
0 请登录后投票
   发表时间:2008-10-28  
和业务相关的hql不在Service层,难道放到DAO层?
0 请登录后投票
   发表时间:2008-10-28  
MarkDong 写道
和业务相关的hql不在Service层,难道放到DAO层?


你一个业务逻辑有多少?
有一个BaseDAO的话,自然就有ExtendDAO,你不写那里面你写到Service干什么?
无非查询数据嘛,findByYearAndMonth(int year,int month)
难道你在Service去组装HQL?
很奇怪你说的跟业务相关的HQL是什么意思。

我觉得Service调用DAO的意义在于由Service去组装或处理繁琐的参数然后干干净净的传给DAO就行了。
0 请登录后投票
   发表时间:2008-10-28  
非常感谢各位的回帖。
MarkDong 写道
和业务相关的hql不在Service层,难道放到DAO层?

 

组装hql语句这样的操作当然要在Dao层,这样才能够达到分层的效果,不依赖具体的ORM工具。service层只是为Dao层提供需要的数据而已。

0 请登录后投票
   发表时间:2008-10-28  
关于 2.异常处理还有待验证,Action中充斥中大量的try{}catch{}。

我当时考虑过在Service层处理,让后返回标识到Action以判断操作是否成功。但是,考虑到通过Exception来处理程序运行的过程,我认为是非常自然的事。但是,Action中充斥着大量的try{}catch{}让人觉得反感。
0 请登录后投票
   发表时间:2008-10-28  
xujian161 写道
非常感谢各位的回帖。
MarkDong 写道
和业务相关的hql不在Service层,难道放到DAO层?

 

组装hql语句这样的操作当然要在Dao层,这样才能够达到分层的效果,不依赖具体的ORM工具。service层只是为Dao层提供需要的数据而已。

   感觉你说的挺矛盾的,既然要不依赖具体ORM工具,那你写HQL语句干什么呢?HQL好象是HIBERNATE专有的吧?

   其次,所谓业务逻辑层如果不提供数据以组装成所需要HQL语句,而仅仅是直接调用DAO层的方法,那么SERVICE层有何业务逻辑可言?

0 请登录后投票
   发表时间:2008-10-28  
xujian161 写道
1.太过度依赖Dao层共通的baseDao;和业务相关的hql语句不应该写在Service类中。

2.异常处理还有待验证,Action中充斥中大量的try{}catch{}。

3.程序日志通过Aop实现,需要验证。丧失了日志的真正意义。

以上是目前我发现项目的问题,希望大家多提建议,非常感谢。


第一条没看出你有什么疑问的;
第二条,异常处理不用try-catch那怎么处理呢,问题在于进行我们自己的封装,并明确的上抛,以达清晰明了;
第三条,貌似是不合理,验证个人认为是不需加的
0 请登录后投票
论坛首页 Java企业应用版

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