はじめに
インターンでspring frameworkを触るかも?となり、いくつかページを見て勉強しようとしたんですが、古い記事が多いしそもそも日本語少ないし今にも泣きそうです…。結局たどり着いたのは公式ページのdemoでした。Hello World!を表示させるだけの極めてシンプルなものですが、エラーなく動いたときは泣きました(公式だから当然動く)。何にも工夫してませんが今日はこれで許してください。。
プロジェクトの作成
本当はSTSとかターミナルとかでプロジェクトを作成するのが正しいと思うんですけど、start.spring.ioに全て任せました(許して)。
Maven Projectにし、基本デフォルトのまんまです(画像は諸事情でNameがdemo2になっています)。ADD DEPENDENCIESでSpring Webを追加します。
GENERATEボタンを押すとプロジェクトのzipファイルをダウンロードできます。解凍したらプロジェクト完成です!
DemoApplication.javaに追記
src/main/java/DemoApplication.javaを以下のように変更します。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping; // 追加
import org.springframework.web.bind.annotation.RequestParam; // 追加
import org.springframework.web.bind.annotation.RestController; // 追加
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
// 追加
@GetMapping("/")
public String top() {
return "TOP Page!";
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
実行
ターミナルでプロジェクトディレクトリに移動して、次のコマンドを実行するとプロジェクトが走ります。
$ ./mvnw spring-boot:run
http://localhost:8080/ に行くと以下のようになります!
http://localhost:8080/hello に行くとhello()が呼び出されます。これがGetMappingの役割みたいです。その際nameの値はdefaultValueですが、http://localhost:8080/hello?name=Canon とすると「Hello Canon!」になります。感動。