Я пробовал руководство по загрузке пружины, чтобы создать конечную точку отдыха данных пружины, используя аннотацию @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);
}
, и это, кажется, работает, пока я держу все в одной упаковке.Итак, я пытаюсь понять, почему это работает, хотя мы не используем аннотации @EnableMongoRepositories
и т. Д., Которые обычно используются для обеспечения реализации по умолчанию для операций CRUD?Из документации видно, что MongoRepository
внутренне расширяет интерфейс PagingAndSortingRepository
, который, в свою очередь, расширяет интерфейс CrudRepository
.Может кто-нибудь объяснить, как это работает?