Spring 实现各种 Repository 接口

Spring implements to kinds of Repository interface

我正在尝试研究 Spring 更具体的 Spring 数据,但我对接口 Repository 及其派生词的使用有疑问 classes,我想请你帮忙澄清它们。

@Repository
public interface GuestRepository extends CrudRepository<Guest, Long>, 
         {}

例如,我看到此代码示例扩展了 CrudRepository,但我看到使用了 extends 关键字但没有实现。为什么 ?我认为 extends 用于子 classes,或者如果我使用抽象 classes 并实现接口。

尝试测试另一个案例的另一个问题我尝试从两个 class 扩展(我知道 java 不允许多个)但是 java 允许我这样做。

@Repository
 public interface GuestRepository extends CrudRepository<Guest, Long>, 
 PagingAndSortingRepository<Guest, Long> {}

而且我看到当我尝试使用某些方法时 ide 向我显示没有任何问题并且我尝试执行我将我请求的数据带给我

所以我有点困惑,当我说扩展 java 不允许扩展到或更多 classes 但在这种情况下允许,但 CrudRepository 和 PagingAndSortingRepository 是接口所以它应该是with implements 关键字。也许 spring 或 java 中的一些技术概念我可能不知道。

在其他 post 中,我发现用两种存储库创建 class 是不可能的,但我找不到任何相关信息。

非常感谢任何帮助,在此先感谢

接口可以扩展其他接口,因此extendsGuestRepository是一个接口)

类 实现接口,因此 implements

你在这里没有实现任何东西,因为 Spring AOP 将根据方法名称为你做“查询的实现”。这是一种 Spring 魔法,并不是 Java 特定的。在 Java 中将它用作示例或参考 OOP 和多态性是相当糟糕的。