gpt4 book ai didi

java - 使用Spring data Rest @RepositoryRestResource 创建rest端点时是否需要注释@EnableMongoRepositories

转载 作者:行者123 更新时间:2023-12-01 19:38:53 24 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot 指南来使用 @RepositoryRestResource 注释创建 Spring Data Rest 端点。我观察到,在指南中,他们没有指定我们使用除 @RepositoryRestResource 之外的任何其他注释。所以我所做的是:

public class Merchant{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

private String firstName;
private String lastName;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}
}

@RepositoryRestResource(collectionResourceRel = "account", path = "account")
public interface MerchantRepository extends MongoRepository<Merchant, String> {

List<Person> findByLastName(@Param("name") String name);

}

只要我将所有内容都放在同一个包中,它似乎就可以工作。所以,我试图理解为什么即使我们没有使用通常用于为 CRUD 操作提供默认实现的注释 @EnableMongoRepositories 等,这仍然有效?从文档中可以明显看出,MongoRepository内部扩展了PagingAndSortingRepository接口(interface),而后者又扩展了CrudRepository接口(interface)。有人可以解释一下这是如何工作的吗?

最佳答案

当使用常规 Spring(不是 Spring Boot)应用程序时或不遵守 general recommendations for a Spring Boot application 时(将 @SpringBootApplication 注解的类放在 top-level package 中)那么您必须添加 @EnableMongoRepositories 注解。

如果您使用 Spring Boot 并遵循一般建议,则无需添加注释。 Spring Boot 通过在类路径上检测 Mongo 和 Spring Data MongoDB 来确定您显然想要使用它。请参阅MongoRepositoriesAutoConfiguration类(注意:这是一个 Spring Boot 类,而不是 Spring Data MongoDB 类)。

关于java - 使用Spring data Rest @RepositoryRestResource 创建rest端点时是否需要注释@EnableMongoRepositories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56146773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com