我正在查看Spring数据,而我注意到的一件事是,我们仅通过创建实现CRUD存储库的接口就能够执行CRUD操作,并且默认情况下,我们可以通过来访问数据库的生成查询器方法名称。
我以为只要实现接口,就需要为方法提供实现。那么,当我们使用从CrudRepository接口实现的接口时,为什么不覆盖任何内容呢?
最佳答案
Spring Data的目标之一是使数据库访问变得容易,而无需手动编写大量样板代码。
传统上,开发人员在使用数据库时通常做的一件事是用方法写入DAOs(数据库访问对象),其中每个方法都会执行特定的查询。这种方法通常是boilerplate code-简单,重复的代码,需要编写和维护大量工作,并且不包含任何业务逻辑。
当您使用Spring Data时,所有这些代码都会自动为您生成。唯一要做的就是在存储库界面中指定要执行的查询,然后Spring Data解释方法名称的含义以自动生成为您执行查询的代码。
这样可以节省大量时间,并可以帮助您简化代码;它还有助于防止错误。
Spring Data存储库接口的实现在运行时自动生成。这不是通过生成已编译的源代码来完成的-在后台,Spring Data直接生成接口实现的字节码。