はじめに
こんにちは、まだしばらくは新人エンジニアだと思っている者です。
java触ってみたいなぁと思ったので(javaの資格が欲しくてw)ついでにフレームワークもやろう!
くらいのノリでとりあえず環境構築していきます。Spring Frameworkよりはシンプルと見たのでそれを信じております。
勉強するならフレームワーク触る前にやった方がいいやろ!というご意見は確実にあるかと思いますが(僕はそう思った。。)フレームワークいじる方が楽しそうなので流されてきました。
containerで構築
javaコンテナの作成をこちらの記事を参考に進めてみる。
Docker × Spring Boot環境構築
上記の記事に沿って進めるとGradleのビルドが上手く行きませんでした。
# javaコンテナにインスペクション
$ docker-compose exec java bash
# gradleビルド
$ sh gradlew build
xargs is not available
docker-compose exec java bashのコマンドでjavaのコンテナの中に入り
ビルドすると、xargs is not availableが出力されビルドができません。
方針の変更
ここまで来てそのままやっても上手くいかないので方針を変更しました。
インストールとかあんまりしたくないな。。という気持ちも強くなってきたのでRemote Container(.devcontainer)で作成するように方針を変えていきます。
RemoteContainerでの構築
一度まっさらにする。
ありがたいことに同じようなことをしてる方がいたので参考にしました。
結局dockerを完璧に理解してないから時間もかかるし良くないんでしょうね。
しかしそっちに手を回す余裕がない、、
container部分は参考コードを参照しました。
build後はほぼSpring BootをVSCodeで「Hello World」を表示させてみたの通りに進めております。
Configure Runtime for Language Server
devcontainer.jsonの設定がよろしくなかったので一旦localに起因するものはコメントアウトしておく。
HelloContorllerの作成。
/boot/demo/src/main/java/com/example/demo/controller/HelloController.java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "hello";
}
}
hello.htmlの作成。
/boot/demo/src/main/resources/templates/hello.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello!!!</title>
</head>
<body>
<h1>HelloWorld</h1>
</body>
</html>
javaファイルを実行するとportが開くので8080/helloを開く。
HelloWorldが表示されました!
終わりに
HelloWorldの表示はなんとか出来ましたが、完璧な環境構築とは言い難いものでした。
更に修正を加えまたqiitaに出します。
何か良い情報などありましたらコメント頂けると幸いです。
参考にさせて頂いた記事一覧
参考コード
Spring BootをVSCodeで「Hello World」を表示させてみた
Spring Boot + Docker の Java 開発環境構築