最近,在经历春天的mongotemplate时,他们触及了存储库(here)。比方说,例如,CRUD存储库,它是为所有CRUD操作制作的存储库吗? 任何人都可以用更简单的术语解释这一点,存储库的确切内容是什么?
答案 0 :(得分:2)
持久数据完全是关于CRUD(创建/读取/更新/删除),但您可以使用不同的技术来实现这些操作。
您提供的链接恰好选择MongoDB,一个填充的NoSQL文档数据库。 Spring Data还可以与关系SQL数据库,对象数据库,图形数据库等一起使用。
设计界面的美妙之处,以及Spring的真正力量在于,您可以将所需的内容与其完成的细节分开。 Spring依赖注入使得在不同的实现中交换变得容易,因此您不必过于紧密地选择。
这是一个简单的通用DAO接口,具有CRUD操作:
package persistence;
public interface GenericDao<K, V> {
List<V> find();
V find(K id);
K save(V value);
void update(V value);
void delete(V value);
}
你可以拥有一个HibernateGenericDao:
package persistence;
public class HibernateGenericDao implements GenericDao<K, V> {
// implement methods using Hibernate here.
}