Spring Boot in Koltin實踐

lpmvs 8年前發布 | 19K 次閱讀 移動開發

來自: http://www.jianshu.com/p/b265b9bcef6c


關注已久的Koltin語言終于發布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依賴
    • </ul> </li>

    • 在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>
    • 編寫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
      )
    • 編寫CustomerRepository接口,繼承自CrudRepository接口——該接口提供了主要的數據庫操作方法。

      interface CustomerRepository : CrudRepository<Customer, Long> {
       fun findByLastName(name: String): List<Customer>
      }
    • 編寫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)
      }
    • 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)
      }
    • 在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
    • 在本地啟動MySQL服務,并創建數據庫koltinDemo。

    • 啟動應用,訪問http://localhost:8080/,可以看到如下結果:


      測試結果1
    • 訪問http://localhost:8080/Bauer,可以看到如下結果:


      測試結果2

      </div> </li> </ol>

       本文由用戶 lpmvs 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!