0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コンピューターシステム株式会社Advent Calendar 2024

Day 9

【Java環境構築】VSCode の Spring Boot Extension Pack でできること

Last updated at Posted at 2024-12-10

【Java環境構築】Windows+Scoop+VSCode で開発環境を構築する の続編的な記事です。
VSCode で Spring Boot の開発をする際、どういった機能が利用できるのか整理しました。

また、サンプルプロジェクトとして、Spring の公式サンプルである Spring PetClinic を使っています。

VSCode 公式の解説ページはこちら。

Spring Boot Extension Pack のインストール

まず初めに、VSCode の拡張機能である Spring Boot Extension Pack をインストールします。
Spring Boot Extension Pack は、STS4 の VSCode 向けの実装です。

STS について補足すると、 STS4 は異なる開発環境向けに提供される Spring 開発ツール群の総称で、VSCode のほかに Eclipse や Theia などのツール向けの拡張機能を提供しています。
以前は、 STS3 というのがあり、これは Eclipse IDE に特化した Spring 開発ツールとなっていました。

この拡張パックには以下の拡張機能が含まれています。

Spring Initializr

Spring Initializr の VSCode 版。
Spring Boot プロジェクトのひな型を生成できます。
内部で上の Web サイトと同じ環境にデプロイされている API を使っています。

Spring Boot Tools

Spring 固有のナビゲーションや補完入力、実行時情報の表示などの機能を提供しています。

Spring Boot Dashboard

VSCode のサイドバーに表示される Spring 用のダッシュボード機能を提供しています。
主に、アプリの起動、停止、デバッグ、ブラウザでの表示などができます。

Spring Initializr

Spring Initializr を使用することで、新規プロジェクトの作成が簡単になります。

Web 版でも SpringBoot のひな型は生成できますが、拡張機能を使うと ZIP の解凍が不要になったり、解凍後のディレクトリを1クリックで開けたりするので便利です。

基本的な使い方

  1. コマンドパレット(Ctrl+Shift+P)を開き、「Spring Initializr」を検索
  2. 「Create a Maven Project」を選択(または、Create a Gradle Project)
  3. 以下の項目を設定:
    • Spring Boot バージョンの指定
    • プロジェクトの言語の指定(Java, Kotlin, Groovy)
    • Group Id(組織の識別子)の入力
    • Artifact Id(プロジェクト名)の入力
    • パッケージング方式の指定(Jar, War)
    • Java バージョンの指定
    • 依存ライブラリの選択(チュートリアル系の記事だと Spring Web だけ選択されているイメージ)
  4. フォルダを選択
    ~/repos/spring-demo を選択した場合、~/repos/spring-demo/${Artifact Id} でフォルダが作成され、そこに pom.xmlsrc などの資材が生成される
  5. 「新しく作成したプロジェクトをワークスペースとして開く」、みたいなメッセージが右下に表示されるので、 OK でワークスペースが切り替えられる

以下、作成後のイメージ。

image.png

pom.xml での依存関係を追加

プロジェクトの作成後、pom.xml ファイルで依存関係を追加したい場合は、プロジェクト作成時と同じように、コマンドパレットで依存ライブラリが選択できます。

「Add Spring Boot Starters ...」にマウスオーバーすると開けます。または、右クリックして、「Add Starters ...」でも可。

image.png

Spring Boot Tools

SpringBoot 特有のコード間の移動や補完入力はこちらの拡張機能が提供しています。

ここからは Spring Petclinic のコードを使って操作感を確認していきます。

git clone --depth=1 https://github.com/spring-projects/spring-petclinic.git
code spring-petclinic

VSCode で上でクローンした spring-petclinic フォルダを開いて、下のステータスバーで Java Ready と表示されるまで待ちます。

「Build Tool Conflicts ...」と表示された場合、Maven もしくは Gradle のどちらかを選択します。(記事では Maven を選択)

image.png

ソースコードのナビゲーション

@GetMapping など SpringBoot 特有のアノテーションが付いている箇所は、「Go to Symbol in Workspace(Ctrl+T or Cmd+T)」でコマンドパレットから移動できます。

image.png

利用できる検索方法は以下です。

検索コマンド 説明
@/ 定義された全てのリクエストマッピングを表示
@+ 定義された全てのBeanを表示します
@> 全ての関数を表示
@ コード内の全てのSpringアノテーションを表示

これ以外にも @SELECT とかすれば、@Query で SELECT が書かれている箇所を抽出したりできました。

実行中のアプリケーションの管理

実行中の Spring アプリケーションのプロセスを参照し、どの Beans が実行時に生成されているのかや、どういうふうに依存性が注入されているかを確認できます。

Spring PetClinic だと、作りが単純でそういった確認をしたいというケースがなかったので、公式ページに貼ってあったスクショをそのまま転載します。

image.png

また、こちらの機能を利用するには spring-boot-starter-actuator が依存ライブラリに入っている必要があります。Spring PetClinic の場合は pom.xml に既に入っていたので大丈夫でした。

静的解析をして警告を表示

例えば、以下のように @Autowired をつけなくても自動で依存性が解決されるような実装をした場合、警告を出してくれます。また、マウスオーバーすると警告内容の詳細が表示できます。

image.png

SonarQube などを使う場合、Java 特有の問題は指摘してくれますが、Spring 特有の問題はスルーだったりするので、これはありがたいです。

コード補完機能

@Value で参照したいプロパティのキー名などは、補完入力で書けます。
候補は application.{properties,yml}application-*.{properties,yml} から取ってきているようでした。

image.png

プロパティファイルのサポート

.properties.yml を書くときに補完入力ができます。

image.png

Spring Boot Dashboard

まだ Preview らしいです。

アプリケーション管理

アプリ起動前にできること

起動、停止、デバッグ、 BEANS の検索や移動、エンドポイントの一覧表示や移動

アプリ起動中にできること

VSCode 上で WebView 表示、外部設定値の表示、Heap Memory の表示(ここだけダッシュボード感がある)

初期設定ではサイドバーに表示されますが、正直見づらいのでパネルに持ってくるのがいいと思います。

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?