手元に弱々なPCしかなくてもブラウザ上でいい感じに開発できるGitHub CodespacesでSpring Bootの開発を行う手順。
「プロになるJava」をCodespecesでやるなら、という想定で書いてます。
ここからの続き
GitHub CodespacesでJava開発を始める - きしだのHatena
Spring Bootの準備
Spring Bootのプロジェクトを作りましょう。
拡張機能から、springで検索して「Spring Boot Extension Pack」をインストールします。
インストールが始まります。
Spring Bootプロジェクトの作成
左下の歯車をクリックして「コマンドパレット」をクリックします。
コマンドパレットが開きます。
「spring i」まで入力するとSpring Initializrのメニューが出るので「Create a Maven Project」を選びます。
Spring Bootのバージョンを選ぶので、一番上の「3.3.2」を選びます。
言語を選ぶので「Java」を選びます。
Group Idはそのまま「com.example」でEnterキーを押します。
Artifact Idは「tasklist」にします。
package typeは「Jar」を選びます。
Java versionには17を選びます。21を選ぶと正しく動きません。21を選ぶ場合はJDKを別途インストールする必要があります。
dependencyを選ぶ画面になります。
「web」で検索して、「Spring Web Web」となっているものを選びます。
「Selected 1 dependency」となるので、Enterキーを押します。違うものが選ばれていたら、クリックしてチェックを外してやりなおしてください。
プロジェクトを作成する場所はそのままEnterキーを押します。
エクスプローラーにtasklistも表示されています。
MAVENにも表示されています。
JAVA PROJECTに表示したいので、ブラウザをリロードして、「Import Projects」を選びます。
tasklistも表示されました。以降は、このJAVA PROJECTS内のtasklistで作業します。
Spring Bootを実行する
左のツールバーにSpring Boot Dashboardがあるので、これをクリックします。
そうすると、Spring Bootの状態が表示されます。
APPSの下のtasklistで▷を押すとSpring Bootの起動が始まります。
ターミナルにいろいろ流れていきます。
8080ポートを開くか聞かれるので、「ブラウザーで開く」をクリックします。
そうすると、ブラウザでエラーページが表示されます。まだ何も作っていないのでエラーになりますが、Spring Bootが返したエラーが表示されているので、起動が行われたことがわかります。
Spring Bootが起動すると、Spring Boot DashboardのAPPSでのtasklistのアイコンが変わります。地球ボタンを押すと、Codespaceの中でブラウザが開きます。
こちらのほうが便利ですね。
□ボタンを押すと停止します。
エンドポイントを作る
ではなにか処理を書いてみましょう。
com.example.tasklistの+ボタンを押します。
Classをクリックします。
HomeRestControllerと入力してEnterキーを押します。
次のようなコードを入力します。
package com.example.tasklist; import java.time.LocalDateTime; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HomeRestController { @RequestMapping("/resthello") String hello() { return """ Hello. It works! 現在時刻は%sです。 """.formatted(LocalDateTime.now()); } }
先ほどと同様にSpring Bootを起動します。
ブラウザで開いて、resthelloをURLにつけ加えると次のように表示されます。
Spring Boot DashboardにもhomeRestControllerや/resthelloというエンドポイントが表示されています。
redirectでの注意
Controllerの戻り値に"redirect:/list"
とするとリダイレクトしてくれるはずですが、CodespacesからのアクセスはSpring Bootが管理するURLとは違っているため、うまくリダイレクトができずエラーになります。
8080とポート番号がついてしまっているので、これを消してアクセスしなおしてください。