使用kotlin编写spring|使用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 reportincludeGroup("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 ) {@Testfun 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对应的类是【使用kotlin编写spring|使用kotlin编写spring cloud微服务的过程】到此这篇关于使用kotlin编写spring cloud微服务的文章就介绍到这了,更多相关kotlin spring cloud微服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!org.junit.jupiter.api.Test
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用