日期:2014-05-18  浏览次数:20701 次

请问对Struts+Hibernate+Spring的Service层的理解
请问Service层是干什么的呢,
我现在在做一个网站,用SSH,我的结构是这样的
action包     Struts的Action类
form包     Struts的Form类
dao包   Dao接口类和实现类

请问我这样分类好吗

最近看别人的源代码看到了他们有个Service层,不知道是干什么的,要怎么用的.不知道你们有没有比较好的分层方法呢??



------解决方案--------------------
分开DAO层和ACTION层
------解决方案--------------------
我也正在学习spring 我也想知道~帮定~~
------解决方案--------------------
分开DAO层和ACTION层的啊,DAO层是连接数据库的,Service层可以使DAO层和ACTION层完全分离

------解决方案--------------------
Service 就是你的业务逻辑层


------解决方案--------------------
学习
up
------解决方案--------------------
Service 不是业务逻辑层 吧,action才是

一般是把Spring的相关,比如接口作为Service ,是使DAO层和ACTION层完全分离的
------解决方案--------------------
楼上正解
------解决方案--------------------
Service才是真正的也业务逻辑接口,DAO是连数据库的具体操作(小层次)action是用来吊service接口的
------解决方案--------------------
action调用service,service调用dao
------解决方案--------------------
service说是分开DAO和ACTION也可以,说是业务逻辑也不为过
详细点讲,service就是个代理,举个例子:
action比作患者,dao比做医院的各科室,service就像是医院的服务人员.患者(ACTION)去医院看病的时候不用自己去挂号然后自己去打听着找各个科室(DAO),而是交点手续费直接给医服人员(service),在由医服人员(service)带领患者(ACTION)去各个科室(),省去了患者(ACTION)自己去找各科室(DAO)而走不必要路线等等的时间.
通过以上例子应该不难理解吧..
收分...........
------解决方案--------------------
service是用来分离DAO和ACTION层的,如果不用SERVICE的话,那就直接在ACTION层调用DAO对数据进行操作,如果使用SERVICE层把DAO和ACTION层进行分离,通过SERVICE层将类似的业务放在一起,在不同的ACTION中如果需要对相似的业务进行操作,可以直接调用SERVICE层,而不需要每个ACTION里都去对DAO层进行操作。我一般都有两种方式,简单点的东西就直接在ACTION里操作了。如果是比较麻烦的,那就通过SERVICE层进行分离,但是这个SERVICE层我只是作为一个接口,实际的业务操作放在一个业务实现层SERVICEIMP里面
------解决方案--------------------
TO : zxh2208180(九天玄狐) 学习,了解。
------解决方案--------------------
其实Service的数据库操作也是由注入的DAO来实现的.

如果一个表没有业务逻辑,我想应该也不要Service了,其实说白了,你完全可以把对一个表的业务逻辑全部写在DAO里面.但是这样分层的意义就没了。。。

------解决方案--------------------
分开DAO和ACTION的,说白了就是表示层和持久层的关联。
------解决方案--------------------
又学东西了!
------解决方案--------------------
action包
bl包--spring接口
bl.impl包----spring接口实现包
dao包-------hibernate接口
dao.hibernate----hibernate接口实现
------解决方案--------------------
其实不用service层完全可以,我在action里面直接拿到dao层的对象
对数据库进行操作.干吗要加一个代理层呢?

但是一般系统都要考虑到事务操作,所以加入service层,主要控制事务.