Springboot+Kotlin StartUp(下)

 
  • 实体类的引入如下
  • 值得注意的是,我们一般不在一个Kotlin File中定义多个类
  • 我们没有使用data来定义数据类,是因为SpringData JPA还不支持这种定义方式
    • 但是如MongoDB,JDBC等等,均支持相应的数据类定义方式
  • 定义一个Repository的kotlin类
  • CRUDRepository中有两个泛型需要制定
    • 第一个是查询的对象
    • 第二个是主键的包装类
  • 利用Junit进行测试
  • 其中findByIdOrNull这个函数 默认由Spring Data的Kotlin插件提供
    • 它和Java的Optional类是类似的
    • 不过,Null是我们的朋友而不是错误,尤其是在数据库查询中
      • 因为用户可能会经常干一些傻事,如果我们确实因为NULL而导致异常
      • 那么服务器拓机,会给业务带来损失
  • 我们Run一下整个测试类 Hibernate在底层辛勤的劳作着 下图显示成功
  • 我们来更新一下模板引擎
    • 创建一篇新的文章
  • 我们来更新一下HtmlController
    • HtmlController可以渲染Blog或者文章页,并用我们写好的日期
    • ArticleRepository 和 MarkdownConverter构造参数会自动的被装配
      • 因为我们有Controller注解,它偷偷的使用了@AutoWired注解
    • 代码如下
  • 接下来我们要对博客的内容去初始化 这里我们使用了title,headline,content,author等等,这些东西,它们会使得代码的可读性更高
  • 当然,我们也要更新我们的测试代码,让测试驱动开发
  • 接下来,我们就可以启动测试,观察一下
  • 如果测试没有异常,我们就可以启动服务端,观察一下
  • 点击一下超链接,再观察一下
  • 以上证明我们的路由没有问题
  • 下面我们要实现一些Web端相关的API
    • 通过@RestController注解
    • 该注解相当于@Controller和@ResponseBody
  • 在src/Kotlin/下新建HttpController
  • 对于测试来说,我们不使用集成测试,而使用@WebMVCTest注解和Mockk
    • 下面的内容在本机上用Gradle第一次并没有成功,建议刷新IDEA重试,
    • Mockk是一个对Kotlin友好的测试框架,和Mockito类似
    • 在配置文件的dependenies中添加下列内容:
    • 下面是Mockk(摩卡)的测试代码 唯一要注意的是$的转义
  • 属性配置文件(这个内容在社区版中不支持,需要IDEA有Springboot插件,简单来说是原生支持)
    • 在Kotlin中,建议使用 @ConfigurationProperties 和 @ConstructorBinding 来配置只读属性
    • 代码如下 
    • 接着 我们让他在 BlogApplication(整个项目中) 作用范围内生效,在同样的文件中,添加下列代码
posted @ 2020-08-30 17:49  ProgrammerZT  阅读(234)  评论(0编辑  收藏  举报