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
 


kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境的更多相关文章

  1. Spring Boot从入门到精通(一)搭建第一个Spring Boot程序

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...

  2. 新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程

    新入手服务器不会玩?抢占式实例服务器教程,从零搭建tomcat超简流程 相信很多新人入手Linux服务器后,一脸无奈,这黑框框究竟能干啥?忽觉巨亏血亏不是? 这里面门道可不是你想象中的那么点,简则服务 ...

  3. spring boot 开发环境搭建(Eclipse)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  4. 使用Spring Boot开发Web项目(二)之添加HTTPS支持

    上篇博客使用Spring Boot开发Web项目我们简单介绍了使用如何使用Spring Boot创建一个使用了Thymeleaf模板引擎的Web项目,当然这还远远不够.今天我们再来看看如何给我们的We ...

  5. Spring Boot——开发新一代Spring应用

    Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的发布,Spring IO团队逐渐开 ...

  6. SpringBoot零XML配置的Spring Boot Application

    Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件.YAML 文件.环境变量和命令行参数来定义优先级不同的配置值.零XML配置的Spring B ...

  7. 天天玩微信,Spring Boot 开发私有即时通信系统了解一下

    1/ 概述 利用Spring Boot作为基础框架,Spring Security作为安全框架,WebSocket作为通信框架,实现点对点聊天和群聊天. 2/ 所需依赖 Spring Boot 版本 ...

  8. Spring Boot 开发集成 WebSocket,实现私有即时通信系统

    1/ 概述 利用Spring Boot作为基础框架,Spring Security作为安全框架,WebSocket作为通信框架,实现点对点聊天和群聊天. 2/ 所需依赖 Spring Boot 版本 ...

  9. Spring Boot开发RESTful接⼝服务及单元测试

    Spring Boot开发RESTful接⼝服务及单元测试 常用注解解释说明: @Controller :修饰class,⽤来创建处理http请求的对象 @RestController :Spring ...

  10. 使用Spring boot开发RestFul 风格项目PUT/DELETE方法不起作用

    在使用Spring boot 开发restful 风格的项目,put.delete方法不起作用,解决办法. 实体类Student @Data public class Student { privat ...

随机推荐

  1. C# 链接MySql数据库

    C# 链接MySql数据库只得注意的几点: 1.C#链接MySql数据库要在网上下载一个mysql-connector-net-6.0.4-noinstall.rar  这里面放的都是一堆dll .将 ...

  2. 重构手法之Extrct Method(提炼函数)

    返回总目录 本节包含3个手法: 1.Extract Method(提炼函数) 2.Inline Method(内联函数) 3.Inline Temp(内联临时变量) Extract Method(提炼 ...

  3. Angular 5和ASP.NET Core入门

    我希望你们都知道Angular 5已经发布了.在本文中,我们将看到如何使用Angular5TemplateCore开始使用Angular 5和ASP.NET Core. 使用Angular5Templ ...

  4. RabbitMQ之Helloworld

    RabbitMQ介绍 RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息. 专有名词 生产(Producing)意思就是发送.发送消息的程序就是一个生产者(producer).我们一 ...

  5. python线程池实现多线程

    参考文献 http://www.open-open.com/news/view/1c0179b http://blog.jobbole.com/52060/ 按照这个博客,实现获取多台服务器的空间使用 ...

  6. java中处理json各种各样转换方法

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  7. 关于vue 框架与后台框架的混合使用的尝试

    这几天我在研究前台框架和后台框架融合的问题,进行了一些尝试; 我前台选择的是 vue,当然也可以选择 react 等其他 mvvm 框架,不过 vue 对于我来说是最熟悉的; 后台话,我选择的是 ph ...

  8. 赢在面试之Java泛型篇(十二)

    139. Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数. 好处: 1.类型安全,提供编译期 ...

  9. sockt套接字编程

    一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...

  10. TFboy养成记 CNN

    1/先解释下CNN的过程: 首先对一张图片进行卷积,可以有多个卷积核,卷积过后,对每一卷积核对应一个chanel,也就是一张新的图片,图片尺寸可能会变小也可能会不变,然后对这个chanel进行一些po ...