こんにちは。じゅんです。
React側でVSCodeを使っていて、Eclipseを立ち上げると重たそうなのでVSCodeでSpringBootを動かそうと思います。
学習記録も兼ねた記事一覧をこちらの記事にまとめています。
事前準備
VSCode(1.89.9)とJavaはインストールされているものとします。
VSCodeに拡張機能をインストール
Extension Pack for Java
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-11.03.56-1-1024x140.png)
これはJava開発用に便利な拡張機能の詰め合わせパックで、以下の拡張機能が含まれています。
- 📦 Language Support for Java™ by Red Hat
- Javaの言語サポート(自動補完など)
- 📦 Debugger for Java
- Javaのデバッグ
- 📦 Test Runner for Java
- テストコードを実行できるように
- 📦 Maven for Java
- ビルドツールのMavenを使用できるように
- 📦 Project Manager for Java
- Javaプロジェクト管理機能
- 📦 Visual Studio IntelliCode
- コーディング支援
Spring Boot Extension Pack
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-11.16.02-1024x259.png)
これはSpringBootを使う上で便利な拡張機能の詰め合わせパックです。以下を含みます。
- Spring Boot Tools
- SpringBootのapplication.properties、application.yml、.javaファイルの操作をサポートします
- Spring Initializr Java Support
- Spring Bootプロジェクトの作成を簡単にします
- Spring Boot Dashboard
- サイドバーにSpringBoot用のメニューを作成してデバッグや実行ができます
Spring Bootプロジェクトの作成
VSCodeからSpring Bootプロジェクトを作成します。
コマンドパレットを「Command + Shift + P」で開いて「Spring Initializr」と入力し、「Spring Initializr: Generate a Maven Project」を選択します。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-13.06.47-1024x664.png)
その後の設定は以下のとおりです。
項目 | 値 | 備考 |
Spring Boot version | 3.2.5 | SNAPSHOTがついていない = 安定版 |
prohect language | Java | 開発言語 |
Input Group Id | com.example | 生成するソースのパッケージ名(任意) クラスやインタフェースを整理するために使われる |
Input Artifact Id | helloworld | 生成するプロジェクト名(任意) プロジェクトの内容が分かる名前が良い |
packaging type | Jar | デプロイ時にプログラムをまとめる方法の1つ EC2やコンテナとの相性が良い |
Java version | 17 | Javaのバージョン 17は長期サポートが対象のバージョンです。 (バージョンの違いは不勉強です…) |
dependencies | Spring Web | アノテーション(@RequestMappingや@GetMapping)を提供するなどWebアプリケーションの開発を効率化する機能の集合 (後で追加できるため最初は最小限) |
プロジェクトの保存場所を聞かれるので好きな場所に保存します。
するとVSCode右下にポップアップが出るので「Open」をクリックします。
(一定時間経過して消えた場合は ファイル > 開く > 作成したプロジェクト
で開きます)
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.07.15-1024x664.png)
作成したSpring Bootプロジェクトを実行する
試しに実行する
既にサンプルが記述されているので試しに実行してみます。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.14.26-1024x664.png)
実行 > デバッグの開始 をクリックします。
以下のようなエラーが発生しました。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.23.23.png)
エラーを見ると、以下の隠しファイル2つが有効ではないと書いてあるので、削除します。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.36.40.png)
すると実行できました。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.40.11-1024x664.png)
正常に実行できたらlocalhost:8080
にアクセスします。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-14.54.52-1024x294.png)
デフォルトのエラーページが表示されます。(8080に起動はできてる)
Hello Worldを表示
HelloWorldを表示させるためには「localhost:8080」でリクエストを受け取ってレスポンスを返すControllerが必要です。
controllerフォルダを作成してHelloworldController.java
を作成します。
package com.example.helloworld.controller;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HelloworldController {
@RequestMapping("/")
public String index() {
return "Hello World";
}
}
再実行します。
![](https://inakademac.com/wp-content/uploads/2024/05/スクリーンショット-2024-05-15-15.29.26.png)
表示されました!
【ミニコラム:@Controllerと@RestController】
@ControllerはHTMLなどのビューを返すために使用されます。
@RestControllerはJSONやXMLなどのデータを返すRESTful Webサービスに使用されます。
今回は「Hello World」だけ表示したかったので@RestControllerを使用しました。
まとめ
以上がVSCodeでSpring Boot を起動してHello Worldを表示する手順でした。
次はSpring Boot単体をEC2にデプロイする方法をまとめます。
参考文献
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9VmlzdWFsJTIwU3R1ZGlvJTIwQ29kZSUyMCVFMyU4MSVBN1NwcmluZyUyMEJvb3QlRTMlODElQUIlRTUlODUlQTUlRTklOTYlODAlRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTZmMDU3NjczNjRiMmJiNDMzOTAzNjdmMjJmZjdjYmVk&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzbWF0cy1yZCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YmM5OWU4ZjNjYTFmZWRlYjA0MTgzNzgzNTYwNzI1MDk&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g5qCq5byP5Lya56S-IOOCouODjeOCueODhuODg-OCrw&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=2dd0a15feb7fa094adbf750d0391b47e)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9U3ByaW5nJTIwQm9vdCVFOCVBNyVBMyVFOCVBQSVBQyVFNyVBQyVBQzE4JUU1JTlCJTlFJTI4JUU1JTlGJUJBJUU2JTlDJUFDJUU3JUI3JUE4JUVGJUJDJTlBQ29udHJvbGxlciVFMyU4MSVBOCVFMyU4MSVBRiUyOSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MTAyYzMzZjk1ZmRkMzU0NjNiZjJhY2IzM2ExMjVkMTQ&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBURUJBU0FLSSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MzBkOWQyZDVjNWMwOWNhZmU1YjdkYjE2YzVhMjFjNGM&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g5qCq5byP5Lya56S-IOaDheWJtQ&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=5196e6d7807db08a1368f9ec887f33d8)
コメント