此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Commons 3.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Data Commons 3.3.4spring-doc.cn

标准 CRUD 功能存储库通常对底层数据存储进行查询。 使用 Spring Data,声明这些查询将成为一个四步过程:spring-doc.cn

  1. 声明一个扩展 Repository 的接口或其子接口之一,并将其键入到它应该处理的域类和 ID 类型,如以下示例所示:spring-doc.cn

    interface PersonRepository extends Repository<Person, Long> { … }
  2. 在接口上声明查询方法。spring-doc.cn

    interface PersonRepository extends Repository<Person, Long> {
      List<Person> findByLastname(String lastname);
    }
  3. 设置 Spring 以使用 JavaConfigXML 配置为这些接口创建代理实例。spring-doc.cn

    import org.springframework.data.….repository.config.EnableJpaRepositories;
    
    @EnableJpaRepositories
    class Config { … }
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jpa="http://www.springframework.org/schema/data/jpa"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         https://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/data/jpa
         https://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
    
       <repositories base-package="com.acme.repositories"/>
    
    </beans>

    此示例中使用 JPA 命名空间。 如果你对任何其他 store 使用仓库抽象,你需要将其更改为 store 模块的相应命名空间声明。 换句话说,您应该交换以支持例如 .jpamongodbspring-doc.cn

    请注意,JavaConfig 变体不会显式配置包,因为默认情况下使用带 Comments 的类的包。 要自定义要扫描的软件包,请使用数据存储特定存储库的 -annotation 的属性之一。basePackage…@EnableJpaRepositoriesspring-doc.cn

  4. 注入存储库实例并使用它,如以下示例所示:spring-doc.cn

    class SomeClient {
    
      private final PersonRepository repository;
    
      SomeClient(PersonRepository repository) {
        this.repository = repository;
      }
    
      void doSomething() {
        List<Person> persons = repository.findByLastname("Matthews");
      }
    }

以下各节详细介绍了每个步骤:spring-doc.cn