Spring Boot in Kotlin实践

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

关注已久的Kotlin语言终于发布1.0.0版本了,参见JetBrains正式发布Kotlin 1.0:JVM和Android上更好用的语言。我看到文章中提到,spring boot社区也及时跟进了对koltin语言的支持,如果这门语言能够消除一些Java中的坑,我觉得可以了解下。

在spring.io找到Developing Spring Boot applications with Kotlin一文,下文是我根据文中的内容进行的实验。

  1. https://start.spring.io中生成项目骨架:

    • Group,使用com.example
    • Artifact,使用koltinDemo
    • Name,使用koltinDemo
    • Description,使用Demo project for Spring Boot with Koltin
    • Dependences,选择JPA、WEB和MySQL依赖
  2. 在IDEA中打开项目,首先需要升级IDEA的koltin插件,我的IDEA-14用的插件是1.0.0-beta-1103,因此要在pom文件中修改对应的koltin语言版本。

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <kotlin.version>1.0.0-beta-1103</kotlin.version>
    </properties>
  3. 编写Customer数据类,跟Java中的POJO作用一样,但是不需要写繁杂的getter、setter甚至equals等方法。

    @Entity
    data class Customer(
         var firstName: String = "",
         var lastName: String = "",
         @Id @GeneratedValue(strategy = GenerationType.AUTO)
         var id: Long = 0
    )
  4. 编写CustomerRepository接口,继承自CrudRepository接口——该接口提供了主要的数据库操作方法。

    interface CustomerRepository : CrudRepository<Customer, Long> {
     fun findByLastName(name: String): List<Customer>
    }
  5. 编写CustomerController控制器,利用构造器依赖注入将CustomerRepository接口导入到该控制器中。@RestContoller注解表示提供REST接口,并通过JSON格式返回数据。

    @RestController
    class CustomerController @Autowired constructor(val repository: CustomerRepository) {
     @RequestMapping("/")
     fun findAll() = repository.findAll()
     @RequestMapping("/{name}")
     fun findByLastName(@PathVariable name: String) = repository.findByLastName(name)
    }
  6. KoltinDemoApplication类中添加CommandLineRunner,用于在应用启动后立马插入测试数据。

    @SpringBootApplication
    open class KoltinDemoApplication {
     @Bean
     open fun init(repository: CustomerRepository): CommandLineRunner {
         return CommandLineRunner {
             repository.save(Customer("Jack", "Bauer"))
             repository.save(Customer("Chloe", "O'Brian"))
             repository.save(Customer("Kim", "Bauer"))
             repository.save(Customer("David", "Palmer"))
             repository.save(Customer("Michelle", "Dessler"))
         }
     }
    }
    fun main(args: Array<String>) {
     SpringApplication.run(KoltinDemoApplication::class.java, *args)
    }
  7. 在application.properties文件中配置数据库连接属性

    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/koltinDemo
    spring.datasource.username=root
    spring.datasource.password=root
    # Hibernate ddl auto (create, create-drop, update)
    spring.jpa.hibernate.ddl-auto = create-drop
  8. 在本地启动MySQL服务,并创建数据库koltinDemo。

  9. 启动应用,访问http://localhost:8080/,可以看到如下结果:

    1240
    测试结果1
  10. 访问http://localhost:8080/Bauer,可以看到如下结果:

    1240
       测试结果2


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
40 0
|
1月前
|
调度 数据库 Android开发
构建高效Android应用:Kotlin协程的实践与优化
在Android开发领域,Kotlin以其简洁的语法和平台友好性成为了开发的首选语言。其中,Kotlin协程作为处理异步任务的强大工具,它通过提供轻量级的线程管理机制,使得开发者能够在不阻塞主线程的情况下执行后台任务,从而提升应用性能和用户体验。本文将深入探讨Kotlin协程的核心概念,并通过实例演示如何在实际的Android应用中有效地使用协程进行网络请求、数据库操作以及UI的流畅更新。同时,我们还将讨论协程的调试技巧和常见问题的解决方法,以帮助开发者避免常见的陷阱,构建更加健壮和高效的Android应用。
36 4
|
1月前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
1月前
|
移动开发 调度 Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【2月更文挑战第30天】 在移动开发领域,尤其是针对Android平台,性能优化和应用流畅度始终是开发者关注的重点。近年来,Kotlin语言凭借其简洁性和功能性成为Android开发的热门选择。其中,Kotlin协程作为一种轻量级的线程管理解决方案,为异步编程提供了强大支持,使得编写非阻塞性代码变得更加容易。本文将深入分析Kotlin协程的核心优势,并通过实际案例展示如何有效利用协程提升Android应用的性能和响应速度。
|
1月前
|
缓存 Java API
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
【云原生】Spring Cloud Gateway的底层原理与实践方法探究
|
1月前
|
数据库 Android开发 开发者
构建高性能微服务架构:从理论到实践构建高效Android应用:探究Kotlin协程的优势
【2月更文挑战第16天】 在当今快速迭代和竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性和独立部署能力而受到企业的青睐。本文将深入探讨如何构建一个高性能的微服务系统,涵盖从理论基础到具体实现的各个方面。我们将重点讨论服务拆分策略、通信机制、数据一致性以及性能优化等关键主题,为读者提供一个清晰、实用的指南,以便在复杂多变的业务环境中构建和维护健壮的微服务体系结构。 【2月更文挑战第16天】 在移动开发领域,性能优化和流畅的用户体验是至关重要的。随着技术的不断进步,Kotlin作为一种现代编程语言,在Android开发中被广泛采用,尤其是其协程特性为异步编程带来了革命性的改进。本文旨在深入
241 5
|
2月前
|
安全 Java 数据库
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
后端进阶之路——万字总结Spring Security与数据库集成实践(五)
|
3月前
|
Java 数据库连接 Spring
从零开始,探索Spring框架的魅力与实践
从零开始,探索Spring框架的魅力与实践
|
23天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。
|
6天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
24 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置