用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 中玩耍的信息,即使对此不太了解也能玩得很开心。