一般的在ssh的开发中往往将web application分层 jsp-action-service-seviceimpl-dao-daoimpl
我想问一下这里的service层有什么用
因为它和dao的定义基本相同(可以看成是dao的代理)我感觉完全可以省略这一层
希望大伙能告诉我这一层的具体应用(最好举例说明)
谢谢啦
[code="java"]
那么service层的其他实现是怎么样的呢
[/code]
service层一般是根据业务逻辑划分的,比如有一个PersonService接口
[code="java"]
public interface PersonService{
public abstract void study();
public abstract void eat();
}
[/code]
它有俩个方法,action知道学study()就行,不需要知道它具体学什么,实现由seviceimpl来完成,根据业务逻辑可能会有外语,数学等等,eat方法也是这样。
分层仅是一种规范而已。
service层:主要写业务逻辑。
dao层:数据访问。
service层依赖dao接口就行了,不必知道daoimpl实现方式(hibernate,jta,ibatis),如果你的dao层发生变化了,只修改daoimpl就可以了,其他层代码不需修改。
还是规范,是面向接口的思想,把service接口暴露给表示层,表示层不必关心service实现,降低了类之间的耦合度。
[quote]dao层可以有jdbc mybaties hibernate等实现
那么service层的其他实现是怎么样的呢 [/quote]
service层是调用各种dao的业务操作,比如你有一个业务是 添加,然后修改。
那么你分别调用dao的添加和修改操作,包括里面的一些数据转换,逻辑判断都放到service层,dao只是单纯的增删改查。
而且事务一般会放到service层。