Spring数据存储库到底用于什么?

时间:2014-07-24 11:26:58

标签: spring spring-data

最近,在经历春天的mongotemplate时,他们触及了存储库(here)。比方说,例如,CRUD存储库,它是为所有CRUD操作制作的存储库吗? 任何人都可以用更简单的术语解释这一点,存储库的确切内容是什么?

1 个答案:

答案 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.
}