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
 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM