1. 程式人生 > >kotlin web開發教程【一】從零搭建kotlin與spring boot開發環境

kotlin web開發教程【一】從零搭建kotlin與spring boot開發環境

1.8 jre cond utf8 erro 2.0 .com 就會 一個tomcat

IDEA中文輸入法的智能提示框不會跟隨光標的問題

我用的開發工具是IDEA技術分享圖片這個版本的IDEA有一個問題;就是中文輸入法的智能提示框不會跟隨光標解決這個問題的辦法很簡單,只有在安裝目錄下把JRE文件夾改個名字,或者直接刪掉就可以了技術分享圖片這樣做了之後,IDEA就會自動使用你系統的JRE環境我系統用的是jdk1.8.0_131;如果你沒有設置你的環境變量,那麽現在可以設置一下:先在系統變量裏加一個JAVA_HOME變量,指向你的JDK目錄技術分享圖片 然後再在path變量裏加上如下記錄技術分享圖片這樣改完,中文輸入法就可以跟隨光標了;註意,不建議用jdk9.0.1(我在這上面踩過坑,記得是gradle不認這個版本的JDK,不得已又滾回了JDK1.8)

使用spring boot官網的工具構建工程

打開:http://start.spring.io/選擇創建一個gradle的工程使用kotlin編程語言使用最高的2.0.0的spring boot框架工程的Group一般的格式如下:com.baidu.projectname工程的Artifact一般直接填寫工程的名字依賴項很重要,我們的項目使用如下依賴項:
  • Web:包含所有spring mvc,tomcat需要的東西(spring boot是基於spring mvc的);
  • DevTools:srping boot的開發工具,比如“熱部署”等
  • JPA:ORM框架
  • MySQL:mysql的JDBC驅動
  • Actuator:應用配置及應用監控工具
  • Freemarker:頁面模版引擎,有點類似ASP.NET MVC的razor
最終選擇的結果如下:技術分享圖片然後點擊生成項目,這時你會得到一個壓縮包解壓之後,用IDEA打開解壓目錄然後IDEA會下載一堆庫最後會得到下面這個工程:技術分享圖片註意:運行上面的工程,IDEA會提示報錯信息
Cannot determine embedded database driver class for database type NONE
這主要是還沒做好配置工作導致的

gradle配置

先來看看gradle的配置文件:build.gradle(在項目根目錄下)其中dependencies節是依賴項配置:註意:以下代碼都是自動生成的不用做任何修改,此處只是解釋一下配置內容
dependencies {
compile(‘org.springframework.boot:spring-boot-starter-actuator‘)
compile(‘org.springframework.boot:spring-boot-starter-data-jpa‘)
compile(‘org.springframework.boot:spring-boot-starter-freemarker‘)
compile(‘org.springframework.boot:spring-boot-starter-web‘)
compile("org.jetbrains.kotlin:kotlin-stdlib-jre8")
compile("org.jetbrains.kotlin:kotlin-reflect")
runtime(‘org.springframework.boot:spring-boot-devtools‘)
runtime(‘mysql:mysql-connector-java‘)
testCompile(‘org.springframework.boot:spring-boot-starter-test‘)
}
我們簡單介紹一下:
  • spring-boot-starter-actuator:SpringBoot的健康檢監控組件的啟動器
  • spring-boot-starter-data-jpa:JPA的啟動器
  • spring-boot-starter-freemarker:freemarker的啟動器
  • kotlin-stdlib-jre8:kotlin基於jre8的標準庫
  • kotlin-reflect:kotlin反射庫
  • spring-boot-devtools:spring-boot開發者工具,比如“熱部署”等
  • mysql-connector-java:java的mysql鏈接工具
  • spring-boot-starter-test:spring-boot測試工具啟動器

application.properties配置

接著我們打開application.properties(在src/main/resources目錄下)添加如下代碼:
#data source
spring.datasource.url=jdbc:mysql://******.mysql.rds.aliyuncs.com:3306/yourDBName?characterEncoding=utf8&characterSetResults=utf8
spring.datasource.username=******
spring.datasource.password=******

spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update server.port=8000 spring.datasource.tomcat.test-while-idle=true
spring.datasource.tomcat.validation-query= Select 1
前面四句主要是數據庫鏈接字符串後面三句是為jpa設置的內容server.port是說明服務將運行在什麽端口再次運行[yourName]Application.kt調試區會出現一大堆調試信息如果沒有問題的話,最後一行調試信息如下
2017-12-23 12:24:43.220  INFO 460 --- [  restartedMain] com.ysl.jna.jna.JnaApplicationKt         : Started JnaApplicationKt in 7.447 seconds (JVM running for 8.208)
說明你的應用已經成功啟動了;倒數第二行調試信息如下:
2017-12-23 13:30:39.642  INFO 6788 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ‘‘
你會看到spring boot幫你啟動了tomcat,(你裝了spring boot,他附送你一個tomcat,省的你自己裝)

編寫controller

就算你做完上述配置,但你訪問http://localhost:8000/,依然得不到任何有用的信息
Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Dec 24 17:14:43 CST 2017
There was an unexpected error (type=Not Found, status=404).
No message available
註意:你的[projectname]Application.kt這個文件一定要在包目錄的根目錄下:如下圖所示:(要不然你連上述錯誤信息都得不到)技術分享圖片下面我們創建controller包並添加HelloController類,代碼如下:
package com.ysl.jna.controller

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class HelloController{
@GetMapping(value = *arrayOf("/hello","/"))
fun hello():Any{
return "hello"
}
}
然後重新編譯一下工程重新訪問http://localhost:8000/你將得到你想要的輸出
hello


kotlin web開發教程【一】從零搭建kotlin與spring boot開發環境