前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境

kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境

作者头像
liulun
发布2018-01-12 16:16:21
2.3K0
发布2018-01-12 16:16:21
举报
文章被收录于专栏:liulun

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会提示报错信息

代码语言:javascript
复制
Cannot determine embedded database driver class for database type NONE

这主要是还没做好配置工作导致的

gradle配置

先来看看gradle的配置文件:build.gradle(在项目根目录下)

其中dependencies节是依赖项配置:

注意:以下代码都是自动生成的不用做任何修改,此处只是解释一下配置内容

代码语言:javascript
复制
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目录下)

添加如下代码:

代码语言:javascript
复制
#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

调试区会出现一大堆调试信息

如果没有问题的话,最后一行调试信息如下

代码语言:javascript
复制
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)

说明你的应用已经成功启动了;

倒数第二行调试信息如下:

代码语言:javascript
复制
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/,依然得不到任何有用的信息

代码语言:javascript
复制
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类,代码如下:

代码语言:javascript
复制
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/

你将得到你想要的输出

代码语言:javascript
复制
hello
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IDEA中文输入法的智能提示框不会跟随光标的问题
  • 使用spring boot官网的工具构建工程
  • gradle配置
  • application.properties配置
  • 编写controller
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档