11.8 控制器层

我们新建子目录controller,然后在下面新建控制器类:

  1. @Controller
  2. class ArticleController {
  3. }

我们首先,装配数据访问层的接口Bean:

  1. @Autowired val articleRepository: ArticleRepository? = null

这个接口Bean的实例化由Spring data jpa完成。如果我们去 http://127.0.0.1:8000/application/beans 中查看这个Bean,我们可以看到信息如下:

  1. {
  2. "bean": "articleRepository",
  3. "aliases": [
  4. ],
  5. "scope": "singleton",
  6. "type": "com.easy.kotlin.chapter11_kotlin_springboot.dao.ArticleRepository",
  7. "resource": "null",
  8. "dependencies": [
  9. "(inner bean)#39c36d98",
  10. "(inner bean)#19d60142",
  11. "(inner bean)#1757cb01",
  12. "(inner bean)#6dd045f0",
  13. "jpaMappingContext"
  14. ]
  15. }

我们先来实现一个简单的查询所有记录的REST接口。我们在ArticleRepository中重写了findAll方法:

  1. override fun findAll(): MutableList<Article>

然后,我们在控制器代码中直接调用这个接口方法:

  1. @GetMapping("listAllArticle")
  2. @ResponseBody
  3. fun listAllArticle(): MutableList<Article>? {
  4. return articleRepository?.findAll()
  5. }

其中,注解@ResponseBody表示把方法返回值直接绑定到响应体(response body)。