Springboot+Kotlin StartUp(上)

上部分 意译到Spring Data JPA之前
 
  • 翻译自 https://spring.io/guides/tutorials/spring-boot-kotlin/(1)
    • 截至2020年8月30日 作为一个初学者,我发现中文网上,竟然难以找到
      • Springboot的官方入门指南的
      • 中文版本
    • 尽管文章的语法非常简单,很好懂,仍决定抽出一天来进行尝试和翻译其中的核心内容,也是为了提高自己的技术水平
    • 创建一个Springboot项目
      • Spring提供了https://start.spring.io 这个官方的initalizer
        • 在其中勾选以下项目
        • Kotlin
        • Gradle Project
        • 在右侧添加下列依赖
          • Spring Web
          • Mustache
          • Spring Data JPA
          • H2 Database
          • Spring Boot DevTools
        • 点击Generate Project 自动下载一个zip文件,该文件是Springboot项目的骨架
    • 使用IDEA Community版本
      • Open该项目,IDEA会自动下载相应的依赖文件,并配置好
        • 由于中国网络的限制,该步骤比较慢,建议和家人,同事趁机聊聊天
        • FQ也可
      • 完成之后,右键Run一下,在8080端口,已经打开了Springboot项目,出现下图即代表成功
      • 可以看到 入口函数,相当的简洁
    • 写你的一个控制器
      • 我们来写一个控制器去展示一个简单的网页
      • 位于 该目录下 src/main/kotlin/com/example/blog/HtmlController.kt
      • 复制以下代码,重新run一遍
      • 代码的意思很简单,这个kotlin文件是一个控制器,注解本身是一个装饰器模式,在@GetMapping注解中,我们定义了一个路由
    • 尝试第三方mustache模板语法
      • 以下文件,如果没有,需要自行添加
        • Warning 在模板引擎中,请不要添加.html后缀
      • 在src/main/resources/templates/header.mustache文件中,复制如下内容
        • <html> <head> <title>{{title}}</title> </head> <body>
      • 在src/main/resources/templates/footer.mustache文件中,复制如下内容
        • </body> </html>
      • 在src/main/resources/templates/blog.mustache中,复制如下内容
        • {{> header}} <h1>{{title}}</h1> {{> footer}}
      • 成功的标志
    • 使用Junit5 进行测试 (这一块我选择意译)
      • Junit5是Springboot默认集成的测试框架,它和Kotlin非常相容
        • 比如说@AutoWired注解自动注入方法中的参数
        • 这使得非空的val属性和在普通的非静态方法中
        • 使用@BeforeAll和@Afterall方法成为可能
      • 在下面的案例中,我们会创造一个综合的测试去证明下述特性
        • 小声:测试框架几乎都有下面的特性
        • Junit5中更类似真实的句子,我们用顿号而不是驼峰,去创建了一个和自然语言很类似的测试函数
        • Junit5中可以注入控制器或方法的参数,这很匹配 kotlin的val类型
        • 下面的代码使用了getForObject 和 getForEntity 的Kotlin 扩展 (这意味着你要引入这些包)
      • 文件:src/test/kotlin/com/example/blog/IntegrationTests.kt
        • Warning : 该文件写于test目录,而非resource目录下
        • 代码如下
        • 执行测试,发现没有什么异常现象,说明没有问题
      • 对类进行测试
        • 有时候你可能需要在测试前后执行自己的方法,比如说日志
        • 以前我们只能对每个方法进行测试,现在我们测试的时候,可以对一个类来测试
        • 方法如下
          • 创建一个Junit的配置文件:src/test/resources/junit-platform.properties
            • 下面一句话,代表每次测试一个类
            • junit.jupiter.testinstance.lifecycle.default = per_class
          • 代码如下: 这里打印了SetUp和TearDown
          • 结果如下图 打印出了SetUp,TODO,Tear down 证明测试成功
    • 自行编写插件,使用Kotlin的扩展函数语法
      • 创造一个文件:src/main/kotlin/com/example/blog/Extensions.kt
      • 在下面的图片中,LocalDateTime是一个类 后面跟着的.format()是我要扩展的函数名,下面就是我的函数,此后我就可以调用该函数了,好处是,不需要再导入Utils类了,原本在哪就在哪,只是换个地方定义插件
      •  

posted @ 2020-08-30 11:09  ProgrammerZT  阅读(320)  评论(0)    收藏  举报