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

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

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

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

選擇建立一個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
相關文章
相關標籤/搜索