1
我知道Java中的接口只有方法的骨架或簽名。在下面的例子中,接口沒有定義任何方法,但仍然正在執行操作,沒有任何問題。任何人都可以解釋它是如何工作的?接口只是Java中的框架,那麼CrudRepository如何提供所有的CRUD操作?
AlbumRepository接口從另一個擴展。它也應該有骨架只有沒有方法的定義。
import org.cloudfoundry.samples.music.domain.Album;
import org.springframework.data.repository.CrudRepository;
@Repository
public interface AlbumRepository extends CrudRepository<Album, String> {
}
AlbumController,這裏的.save或.findall完美地工作。由於原始接口方法沒有在任何地方定義,它是如何工作的。
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新手,想了解它是如何工作的。對不起,如果我失去了什麼...
感謝您的快速響應。你有沒有參考? – Shamseer
@Shamseer你可以去:http://docs.spring.io/spring-data/jpa/docs/current/reference/html/ – Adam
,謝謝你這麼多... – Shamseer