为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

IDEA中文输入法的智能提示框不会跟随光标的问题

我用的开发工具是IDEA

https://img1.sycdn.imooc.com//5b0258b50001660216001000.jpg

这个版本的IDEA有一个问题;

就是中文输入法的智能提示框不会跟随光标

解决这个问题的办法很简单,只有在安装目录下把JRE文件夹改个名字,或者直接删掉就可以了

https://img1.sycdn.imooc.com//5b025913000182cc12860829.jpg

这样做了之后,IDEA就会自动使用你系统的JRE环境

我系统用的是jdk1.8.0_131;

如果你没有设置你的环境变量,那么现在可以设置一下:

先在系统变量里加一个JAVA_HOME变量,指向你的JDK目录

https://img1.sycdn.imooc.com//5b0259270001d49209750044.jpg

 然后再在path变量里加上如下记录

https://img1.sycdn.imooc.com//5b0259410001c88e15881512.jpg

这样改完,中文输入法就可以跟随光标了;

注意,不建议用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

最终选择的结果如下:

https://img1.sycdn.imooc.com//5b025982000128f825950859.jpg

然后点击生成项目,这时你会得到一个压缩包

解压之后,用IDEA打开解压目录

然后IDEA会下载一堆库

最后会得到下面这个工程:

https://img1.sycdn.imooc.com//5b0259b6000179eb09071277.jpg

注意:

运行上面的工程,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这个文件一定要在包目录的根目录下:

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

https://img1.sycdn.imooc.com//5b0259d10001ee5807180478.jpg

下面我们创建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

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消