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官网的工具构建工程

打开: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 sourcespring.datasource.url=jdbc:mysql://******.mysql.rds.aliyuncs.com:3306/yourDBName?characterEncoding=utf8&characterSetResults=utf8spring.datasource.username=******spring.datasource.password=******spring.jpa.database=mysqlspring.jpa.show-sql=truespring.jpa.hibernate.ddl-auto=update

server.port=8000
spring.datasource.tomcat.test-while-idle=truespring.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 PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Sun Dec 24 17:14:43 CST 2017There was an unexpected error (type=Not Found, status=404).No message available

注意:你的[projectname]Application.kt这个文件一定要在包目录的根目录下:

如下图所示:(要不然你连上述错误信息都得不到)

下面我们创建controller包

并添加HelloController类,代码如下:

package com.ysl.jna.controllerimport org.springframework.web.bind.annotation.GetMappingimport org.springframework.web.bind.annotation.RestController@RestControllerclass HelloController{    @GetMapping(value = *arrayOf("/hello","/"))    fun hello():Any{        return "hello"    }}

然后重新编译一下工程

重新访问http://localhost:8000/

你将得到你想要的输出

hello

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术/开源

开源API测试工具 Hitchhiker v0.5更新 - 完善细节

Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部...

21280
来自专栏伦少的博客

spark-submit报错: java.sql.SQLException:No suitable driver

转载请务必注明原创地址为:http://dongkelun.com/2018/05/06/sparkSubmitException/

54650
来自专栏一枝花算不算浪漫

集群下session共享问题的解决方案.

879100
来自专栏安恒网络空间安全讲武堂

PHP的libcurl中存在的一些问题

PHP的libcurl中存在的一些问题 看了近来的几场ctf题目,学习了一些关于php libcurl的一些知识,在这里总结一下。 0x1发送POST请求时造成...

25450
来自专栏SpringBoot 核心技术

SpringCloud组件:Eureka服务注册中心内置的REST节点列表

你有没有考虑过Eureka Client与Eureka Server是通过什么方式进行通讯的? 为什么Client启动成功后Server就会被注册到Serve...

99120
来自专栏Coding迪斯尼

java开发操作系统:同时运行多窗口多任务

15150
来自专栏惨绿少年

AWStats日志分析系统

AWStats是一款功能强大且功能强大的免费工具,可以图形方式生成高级Web,流媒体,ftp或邮件服务器统计信息。此日志分析器用作CGI或命令行, 并在几个图形...

17210
来自专栏ASP.NET MVC5 后台权限管理系统

.Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序

我不知道人们为什么那么喜欢用HelloWorld来做为自己的第一个程序入门,为什么不是hello **其他的东西或者hi。 一、打开ADT 的Eclipse开发...

21070
来自专栏大大的微笑

ZOOKEEPER集群搭建及测试

①. zk是由java编写的需要java运行环境,所以大家首先要安装JDK 具体安装步骤,不再赘述      ②. 首先进入zk的conf目录,将zoo_sam...

314100
来自专栏木子墨的前端日常

ipconfig命令一览

前文用到了ipconfig /displaydns和ipconfig /flushdns,加上之前经常ipconfig查ip,今天看了一下别的命令,用的不多,仅...

23620

扫码关注云+社区

领取腾讯云代金券