使用kotlin编写spring cloud微服务的过程
创建工程
使用idea的spring initializr创建一个项目,语言选择kotlin, 类型为gradle。

根据需要选择依赖

配置文件
yml或者properties文件和java是完全一样的,这里不详细说明
修改build.gradle.kts中的参数:
plugins {
//spring boot版本
id("org.springframework.boot") version "2.3.3.RELEASE"
//自动依赖包版本管理
id("io.spring.dependency-management") version "1.0.10.RELEASE"
...
}
//spring cloud 版本
extra["springCloudVersion"] = "Hoxton.SR8"
repositories {
//本地maven
maven {
url = uri("http://192.168.1.150:8081/repository/maven-public/")
credentials {
username = "admin"
password = "admin"
}
}
maven { url = uri("https://repo.spring.io/milestone") }
jcenter {
content {
// just allow to include kotlinx projects
// detekt needs 'kotlinx-html' for the html report
includeGroup("org.jetbrains.kotlinx")
}
}
}
...
Application
/**
* 商品服务
*/
@SpringBootApplication
class ProductApplication
/**
* 程序入口
*/
fun main(args: Array<String>) {
runApplication<ProductApplication>(*args)
}
这是自动生成程序入口,不用修改
编写controller
@RestController
@RequestMapping("v2/test")
class SpuManagerController(val xService: XService) {
@PostMapping("")
fun addSpu(@RequestBody addXxVO: AddXxVO):Long{
return xrService.addX(addXxVO)
}
}
这是一个controller,通过构造函数注入依赖。
JPA
实体类:
@Entity(name = "table_name")
@DynamicInsert //不插入null
@DynamicUpdate
class XxPO(
var code:String,
var name:String,
var createDate:Date?=null,
var updatedDate: Date?=null,
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) var id:Long?=null)
Repository:
interface XxRepository :CrudRepository<SpuPO,Long>
由于没有自定义的方法,直接定义一个接口即可。
Service
略
单元测试
@SpringBootTest
@AutoConfigureMockMvc
@Transactional
class SpuManagerControllerTests @Autowired constructor(val mockMvc: MockMvc,
val xxRepository : XxRepository ) {
@Test
fun testAddSpu() {
val vo= AddXxVO("test_code", "test_name")
mockMvc.perform(
MockMvcRequestBuilders.post("/v2/test")
.contentType(MediaType.APPLICATION_JSON)
.content(JSON.toJSONString(vo))
).andExpect {
status().is2xxSuccessful
}
.andReturn()
.response
.contentAsString
.apply {
val id = this.toLong()
val result = xxRepository .findById(id)
assert(result.isPresent)
}
}
}
注意 @Test对应的类是
org.junit.jupiter.api.Test
到此这篇关于使用kotlin编写spring cloud微服务的文章就介绍到这了,更多相关kotlin spring cloud微服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java 在Excel单元格中应用一种/多种字体样式(实例代码)
这篇文章主要介绍了Java 在Excel单元格中应用一种/多种字体样式,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12
Java并发容器ConcurrentLinkedQueue解析
这篇文章主要介绍了Java并发容器ConcurrentLinkedQueue解析,2023-12-12
一文搞懂Java ScheduledExecutorService的使用
JUC包(java.util.concurrent)中提供了对定时任务的支持,即ScheduledExecutorService接口。本文主要对ScheduledExecutorService的使用进行简单的介绍,需要的可以参考一下2022-11-11
Java中的ThreadPoolExecutor线程池原理细节解析
这篇文章主要介绍了Java中的ThreadPoolExecutor线程池原理细节解析,ThreadPoolExecutor是一个线程池,最多可使用7个参数来控制线程池的生成,使用线程池可以避免创建和销毁线程的资源损耗,提高响应速度,并且可以管理线程池中线程的数量和状态等等,需要的朋友可以参考下2023-12-12


最新评论