用Spring Boot分别使用Java、Kotlin和Groovy来比较实现”Hello, world!”

我用Java、Kotlin和Groovy比较了在Spring Boot下运行Hello, world!,以下是我的记录。

值得注意的是,本文假定读者使用的操作系统是 macOS。

安装Spring Boot CLI

在家里使用 Homebrew 安装 Spring Boot CLI。

$ brew tap pivotal/tap
$ brew install springboot

在终端上运行以下命令时,将显示版本号。请注意,如果本地存在Rails环境,则有可能执行正在使用的spring,因此需要调整PATH环境变量。

$ spring --version
Spring CLI v1.5.4.RELEASE

你好,创建一个项目

使用下面的命令创建一个名为 Hello 的项目。使用 Gradle 作为构建工具,将 Web 添加为依赖,使用 Java 作为语言,并将其作为一个名为 hello 的项目展开在 hello 目录下。

$ spring init --build=gradle -d=web -l=java -n=hello hello

将 -l=java 更改为 -l=kotlin 或 -l=groovy,即可生成 Kotlin 或 Groovy 代码。

可以使用适当的文本编辑器编辑项目代码,但是如果想要在IntelliJ IDEA Ultimate或IntelliJ IDEA Community中进行编辑,可以使用以下命令打开项目目录。

$ idea hello

你好,世界!实现”Hello, world!”

用Java、Kotlin和Groovy来实现”Hello, world!”。

package com.example.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HelloApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

    @RequestMapping("/")
    String hello() {
        return "Hello, world!";
    }
}
package com.example.hello

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
@RestController
class HelloApplication {
    @RequestMapping("/")
    fun hello() = "Hello, world!"
}

fun main(args: Array<String>) {
    SpringApplication.run(HelloApplication::class.java, *args)
}
package com.example.hello

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
@RestController
class HelloApplication {

    static main(args) {
        SpringApplication.run HelloApplication, args
    }

    @RequestMapping("/")
    def hello() {
        "Hello, world!"
    }
}

这份代码差别不大嘛。

你好,开始执行项目.

当你进入Hello项目的目录,并通过Gradle执行bootRun任务,Web服务器会启动。

$ ./gradlew bootRun

发送一个GET请求

当向已启动的 Hello 项目发送 GET 请求时,将返回 Hello, world!。

$ curl localhost:8080
Hello, world!

这次我使用了 Spring Boot 和 Java/Kotlin/Groovy 来尝试打印”Hello, world!”。起因是我想试试把 Spring Boot 作为一个微框架使用,但由于有import语句的存在,感觉缺乏了微框架的感觉……我觉得 Spring Boot 是一个很好的环境,从微框架开始逐渐演化为全栈,希望能有更多关于在 Spring 中玩耍的信息,即使对此不太了解也能玩得很开心。

文献引用

广告
将在 10 秒后关闭
bannerAds