gpt4 book ai didi

java - 接口(interface)只是 Java 的骨架,那么 CrudRepository 是如何提供所有 CRUD 操作的呢?

转载 作者:行者123 更新时间:2023-11-29 03:01:28 26 4
gpt4 key购买 nike

我知道 Java 中的接口(interface)只有框架或方法签名。在下面的示例接口(interface)中没有定义任何方法,但仍然可以毫无问题地执行操作。谁能解释一下它是如何工作的?

AlbumRepository 接口(interface)从另一个扩展而来。它还应该只有骨架,没有方法定义。

import org.cloudfoundry.samples.music.domain.Album;
import org.springframework.data.repository.CrudRepository;

@Repository
public interface AlbumRepository extends CrudRepository<Album, String> {
}

AlbumController ,这里的 .save 或 .findall 工作得很好。它是如何工作的,因为原始接口(interface)方法没有在任何地方定义。

public class AlbumController {

private AlbumRepository repository;

@Autowired
public AlbumController(AlbumRepository repository) {
this.repository = repository;
}
@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public Iterable<Album> albums() {
return repository.findAll();
}

@ResponseBody
@RequestMapping(method = RequestMethod.PUT)
public Album add(@RequestBody @Valid Album album) {
logger.info("Adding album " + album.getId());
return repository.save(album);
}
}

我是 Java hibernate 的新手,想了解它是如何工作的。对不起,如果我遗漏了什么......

最佳答案

欢迎使用 Spring Data 的魔力。

您说得对,接口(interface)本身不会做任何事情。但是,此处 Spring Data JPA 会在您运行应用程序时自动为您创建该接口(interface)的实现。

关于java - 接口(interface)只是 Java 的骨架,那么 CrudRepository 是如何提供所有 CRUD 操作的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34601740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com