spring - 在 Spring MVC 和 Hibernate 中使用通用 DAO 和通用服务模式的优缺点是什么

标签 spring hibernate generics genericdao

我有一个想法,在我的新项目中实现 Generic DAO 和 Generic Service。我在网上看到了很多例子。

在开始之前我想知道使用这种设计模式的优点和缺点。

谁能告诉我是否建议使用这种模式?

最佳答案

我认为,对于 DAO 和通用 DAO 有不同的看法会更好。关于优点的一些话(如果您使用 ORM、Hibernate,而不是普通的 JDBC,我的建议是有效的)。

  1. Creates a nice abstraction layer of the actual storage system.

这是营销废话。在现实生活中,我们在各种 RDBMS(Oracle RDBMS -> PostgreSQL)之间迁移时会遇到问题。不谈论存储系统类型的更改(例如 RDBMS -> NoSQL)。

  1. Provide a more object-oriented view of the persistence layer.

不!要做到正确是非常困难的。大多数 DAO 实现都有数十种方法,例如

getSomething(String x, String y, String z);
getSomethingOther(String x, String z); 
  1. Provide a clean separation between the domain class and code which will perform the data access from databse.[using JDBC,ORM[like hibernate] or JPA].

也许是,但这种分离的用处被夸大了。

  1. Once you have the general CRUD flow set, the same layout can be repeated for other DAOs.

这是正确的。

关于spring - 在 Spring MVC 和 Hibernate 中使用通用 DAO 和通用服务模式的优缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33795013/

相关文章:

java - 无法修复多对多关系上的延迟加载

java - Spring Boot Multi-Tenancy 每个架构问题

java - JPA 无法以多对一关系持久保存实体

java - 类魔法 - 自动按类型对对象进行排序

java - spring MVC去除页面url前缀和后缀

spring - 我可以使用 PropertyPlaceholderConfigurer 在运行时对 String 执行属性替换吗?

java - 使用 JQuery ajax 发布表单数据时出现无效参数错误

java - 使用 Spring Data 创建只读存储库

ios - 使用枚举和泛型快速扩展类的 Where 子句

swift - 如何使用多个类型参数 - Swift 2?