千家信息网

如何使用kotlin编写spring cloud微服务

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要为大家展示了"如何使用kotlin编写spring cloud微服务",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用kotlin编写sp
千家信息网最后更新 2025年01月18日如何使用kotlin编写spring cloud微服务

这篇文章主要为大家展示了"如何使用kotlin编写spring cloud微服务",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用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

/** * 商品服务 */@SpringBootApplicationclass ProductApplication/** * 程序入口 */fun main(args: Array) {        runApplication(*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@DynamicUpdateclass 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

由于没有自定义的方法,直接定义一个接口即可。

Service

单元测试

@SpringBootTest@AutoConfigureMockMvc@Transactionalclass 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微服务"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0