【发布时间】:2019-10-02 10:42:30
【问题描述】:
我正在尝试使用 @RepositoryRestResource 注释创建弹簧数据休息端点的弹簧引导指南。我观察到的是,在指南中,他们没有指定我们使用任何其他注释而不是@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 接口,而CrudRepository 接口又扩展了CrudRepository 接口。有人可以解释一下这是如何工作的吗?
【问题讨论】:
-
你可以定义单独的包并且你必须@ComponentScan(你的包名)。 @Enable* 相关注解应该在主spring boot类中使用。
-
@Sambit 你没抓住重点,我想了解它是如何工作的
标签: java spring spring-boot spring-data-mongodb spring-data-rest