我正在研究 Spring 数据,我注意到的一件事是,我们只需创建一个实现 CRUD 存储库的接口(interface)即可执行 CRUD 操作,并且默认情况下,我们可以通过方法名称访问生成的数据库查询。
我认为每当我们实现接口(interface)时,我们都需要提供方法的实现。那么,当我们使用从 CrudRepository 接口(interface)实现的接口(interface)时,为什么不重写任何东西呢?
最佳答案
Spring Data 的目标之一是让数据库访问变得简单,而不需要手动编写大量样板代码。
传统上,开发人员在使用数据库时通常做的事情之一是写入 DAOs (数据库访问对象)与方法,其中每个方法都会执行特定的查询。此类方法通常为 boilerplate code - 简单、重复的代码需要大量的编写和维护工作,并且不包含任何业务逻辑。
当您使用 Spring Data 时,所有这些代码都会自动为您生成。您唯一需要做的就是在存储库接口(interface)中指定您想要执行的查询,然后 Spring Data 会解释方法名称的含义,以自动生成为您执行查询的代码。
这可以节省您大量时间,并有助于您保持自己的代码简洁;它还有助于防止错误。
Spring Data 存储库接口(interface)的实现是在运行时自动生成的。这不是通过生成编译的源代码来完成的 - Spring Data 在幕后直接生成接口(interface)实现的字节码。
关于java - 为什么我们不重写 Spring CRUD Repository 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57311019/