View 层、Controller 层、Service 层、Dao 层的区别以及对应的功能
1、Dao 层
Dao 层主要做数据持久层的工作, 负责与数据库进行联络的一些任务都封装在此。Dao 层的设计:首先 是设计 dao 层的接口,然后在 Spring 的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao 层的数据源配置,以及有关数据库连接参数都在 Spring 配置文件中进行配置。
2、Service 层
Service 层主要负责业务模块的应用逻辑应用设计。Service 层的设计:同样是首先设计接口,再设计其实现类,接着再 Spring 的配置文件中配置其实现的关联。这样我们就可以在应用中调用 service 接口来进行业务处理。service 层的业务实, 具体要调用已经定义的 dao 层接口 ,封装 service 层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。
3、Controller 层
Controller 层,负责具体的业务模块流程的控制,在此层要调用 service 层的接口来控制业务流程,控制的配置也同样是在 Spring 的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。
4、view 层
view 层与控制层结合比较紧密,需要二者结合起来协同开发。view 层主要负责前台 jsp 页面的显示。
5、它们之间的关系:
Service 层是建立在 Dao 层之上的,建立了 Dao 层后才可以建立 Service 层,而 Service 层又是在 Controller 层之下的,因而 Service 层应该既调用 Dao 层的接口,又要提供接口给 Controller 层的类来进行调用,它刚好处于一个中间层的位置。 每个模型都有一个 Service 接口,每个接口分别封装各自的业务处理方法。
个人理解:
Controller 层叫做控制层,负责请求转发,接受页面过来的参数,传给 Service 处理,接到返回值,再传给页面。即用于接口暴露。
Service 层叫服务层,被称为服务,粗略的理解就是对一个或多个 DAO 进行的再次封装,封装成一个服务。即 sevice 层用于逻辑处理,sevice 层专注业务逻辑,对于其中需要的数据库操作,都通过 Dao 去实现。
Dao 层叫数据访问层,全称为 data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求。View 层叫做表示层,此层与控制层结合比较紧密,需要二者结合起来协同工发。View 层主要负责前台 jsp 页面的表示。表示层(View\Web) 调用 控制层(Controller),控制层(Controller)调用业务层(Service),业务层(Service)调用数据访问层(Dao)
Dao 面向表,Service 面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出 Dao 层,然后根据具体的业务逻辑进一步封装 Dao 层成一个 Service 层,对外提供成一个服务。
版权声明: 本文为 InfoQ 作者【孙铭】的原创文章。
原文链接:【http://xie.infoq.cn/article/cff8836f7980bf2019788eaac】。文章转载请联系作者。
评论