Kotlin
Kotlin 是一个基于 JVM 的编程语言,它的简洁、便利早已不言而喻。Kotlin 能够胜任 Java 做的所有事。目前,我们公司 C 端 的 Android 产品全部采用 Kotlin 编写。公司的后端项目也可能会使用 Kotlin,所以我给他们做一些 demo 进行演示。
示例一:结合 Redis 进行数据存储和查询
1.1 配置 gradle
在build.gradle中添加插件和依赖的库。
1.2 创建 SpringKotlinApplication:
需要注意 的使用,如果不加 会报如下的错误:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Configuration class 'SpringKotlinApplication' may not be final. Remove the final modifier to continue.
因为 Kotlin 的类默认是final的,所以这里需要使用 关键字。
1.3 配置 redis
在 application.yml 中添加 redis 的配置
接下来定义 redis 的序列化器,本文采用fastjson,当然使用gson、jackson等都可以,看个人喜好。
创建 RedisConfig
这里也都需要使用 ,理由同上。
1.4 创建 Service
创建一个 User 对象,使用 datat class 类型。
创建操作 User 的Service接口
创建 Service 的实现类:
1.5 创建 Controller
创建一个 UserController,包含 createUser、getUser 两个接口。
创建完 Controller 之后,可以进行测试了。
创建用户tony:
查询用户tony:
创建用户monica:
查询用户monica:
示例二:结合 RxJava 模拟顺序、并发地执行任务
2.1 创建 MockTask
首先定义一个任务接口,所有的任务都需要实现该接口:
再创建一个模拟的任务,其中delayInSeconds用来模拟任务所花费的时间,单位是秒。
2.2 创建 ConcurrentTasksExecutor
顺序执行的话比较简单,一个任务接着一个任务地完成即可,是单线程的操作。
对于并发而言,在这里借助 RxJava 的 merge 操作符来将多个任务进行合并。还用到了 RxJava 的任务调度器 Scheduler,createScheduler()是按照所需的线程数来创建Scheduler的。
2.3 创建 Controller
创建一个 TasksController,包含 sequential、concurrent 两个接口,会分别把sequential 和 concurrent 执行任务的时间展示出来。
顺序地执行多个任务:http://localhost:8080/tasks/sequential?task=1&task=2&task=3&task=4
每个任务所花费的时间分别是1秒、2秒、3秒和4秒。最后,一共花费了10.009秒。
两个线程并发地执行多个任务:http://localhost:8080/tasks/concurrent?task=1&task=2&task=3&task=4&threads=2
三个线程并发地执行多个任务:http://localhost:8080/tasks/concurrent?task=1&task=2&task=3&task=4&threads=3
总结
本文使用了 Kotlin 的特性跟 Spring Boot 整合进行后端开发。Kotlin 的很多语法糖使得开发变得更加便利,当然 Kotlin 也是 Java 的必要补充。
本文 demo 的 github 地址:https://github.com/fengzhizi715/kotlin-spring-demo
关注【Java与Android技术栈】
领取专属 10元无门槛券
私享最新 技术干货