2012-01-28 102 views
0

我仍然在学习请教,如果我错了。Spring-Dao与Spring-mvc不同吗?

我有一个关于Spring Dao和spring MVC的问题。 我知道MVC - 模型,视图,控制器。我们可以说DAO是MVC体系结构的一部分。但是,为什么Spring-DAO是自己着名的?

为什么Spring-DAO会自己用于与其他结构(如hibernet和JSF)绑定?

回答

4

MVC和DAO是解决两个不同应用层(UI层和数据访问层)上两个不同问题的两种不同模式。

为什么Spring-DAO是自己着名的?

考虑一个批处理应用程序,它不涉及UI但是有很多数据访问。这里春天的DAO支持,可以通过照顾样板代码,简化事务支持等编码的数据访问层,大大简化

2

Spring Framework documentation解释春天DAO的目的如下:

数据访问对象(DAO)的支持旨在使它能够以一致的方式轻松处理JDBC,Hibernate,JPA或JDO等数据访问技术。这使得人们可以相当容易地在上述持久性技术之间进行切换,并且还允许人们进行编码,而不用担心捕捉每种技术特有的异常。

这给出了Spring DAO是什么的概述,并处理了有关Spring DAO和Hibernate之间关系的部分问题。另一方面,Spring MVC和JSF(主要)是关于实现网页和网站的。它们与Spring DAO,JDBC,Hibernate,JPA,JDO等是正交的。也就是说,他们做了不同的事情。

我们可以说DAO作为MVC架构

这是不正确的部分。 Spring DAO 可与一起使用Spring MVC,但它不是Spring MVC或“MVC体系结构”的一部分。

0

Spring DAO vs spring Mvc是完全不同的使用不同目的的技术。你可以在spring MVC里面配置spring DAO,但它不是spring MVC的一部分。 Spring DAO只是一个数据持久化技术,比如JPA,Hibernate。但是Spring DAO比JPA或hibernate更加轻便和高效,因为如果使用JPA,则需要使用JPQL进行数据库操作。如果使用休眠,则需要使用HQL。需要额外的努力来将JPQL或HQL转换为SQL,这个过程需要一些时间,因此它比Spring DAO高效。您可以使用Spring DAO编写纯SQL语句,并直接在数据库中执行

Spring MVC是基于web的应用程序设计模式。你提到的模型,视图控制器。 Spring MVC不仅支持MVC框架的Java支持.Strust 2还基于MVC模式。但实施的方式是不同的。