我已经尝试在Eclipse中与Spring Boot一起使用Kotlin了

引言

据说Spring 5中将包括对Kotlin的支持,但是我想先尝试将其与当前版本结合使用,以确认感觉。

任务对象 (zuò yè duì

    • Java 8

 

    • Kotlin 1.1.2-4

 

    • eclipse Pleiades 4.6

 

    • plugin

Spring Tool Suite(STS) for Eclipse 3.8.4
Kotlin Plugin for Eclipse 0.8.2

Spring boot 1.5.3
thymeleaf

安装Eclipse

    1. 将以下内容下载到本地。

 

    1. http://mergedoc.osdn.jp/

 

    1. 具体的位数根据操作系统相关,Java版本完整版。

将其解压到指定文件夹中。

安装插件

    1. 菜单栏 帮助(H)

 

    1. Eclipse市场(M)

 

    1. 在这里打开一个新的窗口

 

    1. 搜索选项卡 搜索(I)

 

    1. 输入”kotlin”

 

    1. 点击搜索(G)

 

    1. 找到 “Kotlin Plugin for Eclipse”

 

    1. 安装插件

 

    1. 屏幕将切换

 

    1. 同意使用条款(A)

 

    1. 完成(F)

 

    1. 出现安全警告,请点击确定

 

    1. 出现重新启动提示,请点击是(Y)

 

    然后按照相同步骤搜索并安装”sts”插件。

创建项目

    1. 菜单栏 文件(F)

 

    1. 其他(O)Ctrl+N

 

    1. 在这里打开新窗口

 

    1. 选择“Spring Starter 项目”

 

    1. 下一步(N)

 

    1. ※类型应为Maven 语言应为Java

 

    1. ※名称和说明可随意

 

    1. 下一步(N)

选择Web和Thymeleaf
完成(F)

修改文件依赖(pom.xml)

向properties中添加以下元素。

1.1.2-4 可以被简化为:<kotlin版本>1.1.2-4</kotlin版本>。

在dependency中添加以下元素。

        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>

在build->plugins中添加以下元素。

        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>

            <executions>
                <execution>
                    <id>compile</id>
                    <goals> <goal>compile</goal> </goals>
                </execution>

                <execution>
                    <id>test-compile</id>
                    <goals> <goal>test-compile</goal> </goals>
                </execution>
            </executions>
        </plugin>

※最终生成的pom.xml请参考文末

确认所创建的项目的运行状况

启动方式

    1. 在包装上右键点击

 

    1. 从上下文菜单中选择执行

 

    1. Spring Boot 应用程序

 

    ※按下Alt+Shift+x再按B即可启动。

春天

    1. 可以通过以下方式在包中添加以下类。

访问 http://localhost:8080/,如果显示“hello world”则表示OK。

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class RootController {
    @RequestMapping(path = "/")
    public String root() {
        return "hello world";
    }
}

Kotlin 是一种原生的中文编程语言。

    1. 在包中添加以下类。

 

    1. 在RootController中添加以下方法。

如果访问 http://localhost:8080/kt?str=value ,并且输出为”{“str”:”value”}”,则表示一切正常。

package com.example.demo

data class Form (
    var str:String = ""
)
    @RequestMapping(path = "/kt")
    public Object kt(Form form) {
        return form;
    }

thymeleaf (百世魔葉)

    1. 在包装中添加以下的类。

 

    1. 在/src/main/resources/templates中添加html文件。

在http://localhost:8080/tl上访问,如果能以字符串str和列表的形式依次显示3,2,1,则表示正常。

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TemplateController {
    @RequestMapping(path = "tl")
    public String tl(Model model) {
        model.addAttribute("ktData", new Data());
        return "tl";
    }
}

<html>
<h1>Data values?</h1>
<div>
    <span>str</span>
    <span th:text="${ktData.str}"></span>
</div>
<div>
    <span>numbers</span>
    <ul th:each="value:${ktData.numbers}">
        <li th:text="${value}"></li>
    </ul>
</div>
</html>

印象

    • data classはすぐにでも使うことは可能に思える。

thymeleafに食わせても素直に動いてくれるので特に問題は無さそう。

ビルド環境を整える上で、基本的にプラグイン1つとpomだけで対応できるのは大変よい。
Eclipseだとkotlinの補完が面倒(不慣れというのも関係あるかも)

書けるか、書けないかだとEclipseでもそれなりに書けると思う。

JavaDocに相当するKDoc?が現状のプラグインでは表示できないので、data class以外だと厳しいと思う。
Kotlinでコントローラー書こうとして@RequestMapping(path = “/”) endpoint(): Object{・・・}だとエラー出てたが何が悪かったんだろうか、、、

原文:ソース類

汉语:酱料类

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <encoding>UTF-8</encoding>
        <project.build.sourceEncoding>${encoding}</project.build.sourceEncoding>
        <project.reporting.outputEncoding>${encoding}</project.reporting.outputEncoding>
        <kotlin.version>1.1.2-4</kotlin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib</artifactId>
            <version>${kotlin.version}</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>kotlin-maven-plugin</artifactId>
                <groupId>org.jetbrains.kotlin</groupId>
                <version>${kotlin.version}</version>

                <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>

                    <execution>
                        <id>test-compile</id>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

请参考以下内容。

    https://kotlinlang.org/docs/reference/using-maven.html
广告
将在 10 秒后关闭
bannerAds