Spring Initializr を使って爆速でHello World！！！

#目的

JavaのフレームワークであるSpringBootを用いて、
`Hello World`をとりあえず出力させたい！という方のためへ残しておきます。

#Spring Initializrってなに？

ブラウザ上で、ビルドツールや開発言語を選択して、雛形となるアプリケーションを簡単に生成することが出来るもの。
（Ruby on Railsでいう所のscaffold（スキャフォールド）みたいなものと認識しています。）

#実践編

##今回扱う各種バージョン

OS：macOS Mojave バージョン10.14.6
テキストエディタ：Visual Studio Code（以下VSCode）

```
$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
```

```
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 13.0.2, vendor: N/A, runtime: /usr/local/Cellar/openjdk/13.0.2+8_2/libexec/openjdk.jdk/Contents/Home
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
```

```
$ spring --version
Spring CLI v2.3.1.RELEASE
```

##Spring Initializrの公式へGo!!!

[こちら](https://start.spring.io/) にアクセスしてください。


各種追加、修正を加えて以下の様にします。
![スクリーンショット 2020-06-21 20.36.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/11adafb1-1e07-4ece-df36-4d1a556d20de.png)

そして、`GENERATEボタン`を押下。

GENERATEボタンを押下したことにより、Zipファイルがダウンロードされたと思います。

そのZipファイルを展開してください。

##テキストエディタで修正

![スクリーンショット 2020-06-21 20.41.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/f8273ea8-3314-43ae-63c7-d07ddefdd489.png)

今回は、demoという名前のフォルダがあるはずですので、お使いのテキストエディタで開いてください（今回はVSCodeです）。

>これ余談なんですけど、拡張機能で以下をインストールしておくことをおすすめします（作業が捗ります）。
>>・Java Extension Pack
・Spring Boot Tools
・Lombok Annotations Support for VS Code


`src/main/java/com/example/demo`の中に、HelloController.javaを作成します。

![スクリーンショット 2020-06-21 21.16.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/4424d8dd-d5ba-d515-2c51-9cee256a5ba5.png)



[SpringBootの公式](https://spring.pleiades.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-first-application-code)のコードを参考にしつつ、
HelloController.javaの中身を記述していきましょう！

```java:HelloController.java
package com.example.demo;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class HelloController {
  
  @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
}
```

そして、ターミナルでdemoフォルダに移動して、
`mvn spring-boot:run`と入力してください。

```terminal:ターミナル
$ mvn spring-boot:run

[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------------< com.example:demo >--------------------------
[INFO] Building demo 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] >>> spring-boot-maven-plugin:2.3.1.RELEASE:run (default-cli) > test-compile @ demo >>>
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.

〜省略〜
```

しばらくすると以下のように表示されます。

```terminal:ターミナル
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)

〜省略〜
```

そして、ブラウザでhttp://localhost:8080/
を入力すると、

![スクリーンショット 2020-06-21 21.23.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555244/75827b1b-78ec-3e61-b974-84d4163ae411.png)

Hello World!と表示されましたね！


#終わりに

今回はSpringBoot等の詳しい説明は割愛させていただきました。
（ブラウザで表示出来るところまでをゴールにしました）

ご自身でコードを変更してはブラウザで確認するといった学習にご活用いただければと思います。