第3章 Spring開発環境

3.3 STSを使おう

STSはビューとパースペクティブによって編集画面が変化します。この2つの要素についてここでしっかりと理解しておきましょう。

3.3.1 STSを起動する

では、STSを起動しましょう。これはインストールしたフォルダ内の「sts-xxx」というフォルダの中から「STS.exe」をダブルクリックして行ないます。
最初に起動すると、「Select a directory as workspace」というダイアログが現れます。これは、STSで作成するプロジェクトや各種設定等を保存する場所の指定です。デフォルトでは、「ドキュメント」フォルダ内に「workspace-sts-xxx」というフォルダを作成し、そこに保存するようになっていますが、スクールでは「C:\usr\sts-bundle\」フォルダ内に「workspace」として作成します。

「Workspace:」「C:\usr\sts-bundle\workspace」と入力し、「Launch」ボタンを押してください。


図 3.3 1:ワークスペース選択のダイアログ。

起動すると、画面の中央に「Spring」と表示されたエリアが表示されます。これは「ダッシュボード」ビューと呼ばれるものです。よく見ると、左上に「Dashboard」というタブが表示されているのがわかるでしょう(ビューについては後述します)。


図 3.3 2:起動したSTSの画面。「ダッシュボード」ビューが表示されている。

このタブにあるクローズボタン(×マーク)をクリックして閉じてください。これでダッシュボードビューが閉じられ、いくつかの四角い領域(これらもすべてビューの一種です)が組み合わせられた表示だけになります。これが、STSの基本となる開発画面です。ここで必要な操作を行い、開発をしていきます。


図 3.3 3:STSの基本画面。いくつかのビューが組み合わせられた形をしている。

3.3.2 基本画面と「ビュー」

STSの画面は、いくつかの領域の組み合わせになっています。これらは「ビュー」と呼ばれます。ビューは、ウィンドウの中で独立して機能する内部ウィンドウのようなものです。そのときの状況や、ほかのビューの状態などによって表示が変化したりするものもあります。また、状況に応じて表示されるビューも変化します。
STSには非常に多くのビューが用意されていますが、基本的なものは限られています。まずは、最初の画面で表示される基本的なビューの役割についてざっと頭に入れておきましょう。

■パッケージエクスプローラー(Package Explorer)

左側にある縦長のビューです。このビューでは、作成するアプリケーションに必要なファイルやフォルダなどが階層的に表示されます。ここからファイルをダブルクリックして開き、編集を行うことができます。また、新たなファイルを追加したり、既にあるものを削除したりする場合も、このビューで操作します。
パッケージエクスプローラーと同じような役割をするビューとして「ナビゲーター」「プロジェクトエクスプローラー」といったものもあります。


図 3.3 4:パッケージエクスプローラー(作成したばかりのプロジェクトを開いた状態)
■サーバー(Servers)

パッケージエクスプローラーの下に見える小さなビューです。これはサーバー情報を管理します。JavaでWebアプリケーションの開発を行う場合、作成したアプリケーションを動かすには、サーバーを起動しデプロイしなければいけません。そこで、サーバー関係を管理するための専用ビューとしてこれが用意されています。

標準では、「Pivotal tc Server Developer Edition」という項目が表示されています。これは、STSに同梱されているサーバープログラムで、これを利用してWebアプリケーションを実行することができます。


図 3.3 5:サーバー(Serversタブが開かれた状態)

■Bootダッシュボード(Boot Dashboard)

「Servers」タブの右側にある「Boot Dashboard」タブをクリックすると、表示が切り替わります。これは、本書で使うSpring Bootフレームワークの機能を利用するためのビューです。
Spring Bootで開発されたアプリケーションは、一般的なサーブレットコンテナ(Javaサーバー)でそのままデプロイして動かすのではなく、アプリケーション内蔵のサーバープログラムによって実行されます。このダッシュボードで、Bootアプリケーションの起動やリスタートなどを行なえます。


図 3.3 6:サーバー(Boot Dashboardタブが開かれた状態)

■アウトライン(Outline)

ソースコードファイルなどを編集する際に用います。ソースコードを解析し、その構造を階層的に表示します。例えばJavaのソースコードならば、クラスやメソッドなどの構造を表示するのです。
ここから項目(メソッドやフィールドなど)を選択することで、編集エディタでその場所に移動したりすることも出来ます。

図 3.3 7:アウトライン(Applicationクラスが開かれている状態)
■Springエクスプローラー(Spring Explorer)

パッケージエクスプローラーと同じように各種情報を階層的に表示します。Spring Frameworkでは、独特の「Bean」作成によってアプリケーションを構築していきます。このBeanクラスや独自の設定情報等をまとめ管理します。

図 3.3 8:Springエクスプローラー(Beanを開いている状態)
■編集用エディタ

ウィンドウの中央に見える、何も表示されていない領域は、ファイルの編集用エディタが置かれる場所です。パッケージエクスプローラー等でファイルをダブルクリックすると、そのファイルを編集するためのエディタがこの場所に開かれ、ここで編集作業が行なえるようになります。
開いたエディタはそれぞれにタブが表示され、複数のファイルを開いてタブを切り替えることで、並行して編集することができます。

図 3.3 9:編集用エディタ(Applicationクラスファイルを開いている状態)
■コンソール(Console)

中央にある編集用エディタの領域の下に、いくつかのビューを示すタブが並んで表示されている部分があります。これは、複数のビューが同じ場所に開かれているのです。このようにSTSでは、いくつかのビューを同じ場所に開き、タブを使って切り替え、表示できるようになっています。
「Console」というタブで表示されるのが「コンソール」というビューです。これは、プログラムを実行した場合などに、その実行状況や結果に関する情報を出力します。


図 3.3 10:コンソール(プロジェクトを実行した状態)

とりあえず、これらの基本的なビューの役割がわかれば、簡単なSTSの操作はできるようになるはずです。細かな操作方法などは、実際に開発を行ないながら覚えていけばよいでしょう。

3.3.3 その他のビューについて

STSには、このほかにも多数のビューが用意されています。が、それらはデフォルトでは画面に表示されていません。では、これらのビューを呼び出して利用するにはどうすればよいのでしょうか。

一つは、後述する「パースペクティブ」を利用することです。パースペクティブを切り替えることで、ビューの表示を自動的に切り替え、必要なビューを揃えることができます。

そしてもう一つは、使いたいビューをメニューで選んで開くやり方です。<Window>メニューの<Show View>メニューに、主なビューがサブメニューとして登録されています。ここから選択すれば、そのビューが開かれます。

図 3.3 11:<Show View>メニューから主なビューは開くことができる。

それ以外のビューは、<Show View>メニューにある<Other…>メニューを選ぶと、画面にビューの一覧リストを表示したダイアログが現れます。

図 3.3 12:<Other…>メニューを選ぶと、全ビューが種類ごとにまとめられたダイアログが現れる。

このダイアログでは、STSに用意されているビューが、種類ごとに分類されて一覧表示されます。ここから使いたいビューを選択し、OKすれば、そのビューを開くことができます。

図 3.3 13:項目を選択し、OKすれば、そのビューが開かれる。

3.3.4 パースペクティブについて

STSの画面表示で、ビューとともに重要なのが「パースペクティブ」です。パースペクティブは、さまざまな状況に応じたビューの組み合わせ(表示やレイアウトなど)を管理します。 ビューは1つ1つの役割が決まっており、例えばソースコードの編集のときに必要なものはデバッグ中には必要ないというように、状況によって必要となるビューは変わってきます。

そこで「編集用のビューのセット」「デバッグ用のビューのセット」というように、状況ごとに使用するビューや、細かな表示などをまとめたものとして「パースペクティブ」が用意されたのです。必要に応じてパースペクティブを切り替えることで、最適な環境をすばやく整えることができます。 パースペクティブは、デフォルトでいくつかのものが用意されており、それらを使うだけで当面は問題なく開発作業を行なえるでしょう。これらは以下の2通りの方法で切り替えることができます。

メニューを使う
<Window>メニューの<Perspective>メニュー内にある<Open Perspective>のサブメニューに、主なパースペクティブが用意されています。ここからメニュー項目を選ぶことでパースペクティブが切り替わります。


図 3.3 14:<Open Perspective>メニューには、主なパースペクティブがサブメニューとしてまとめられている

ツールバーを使う
パースペクティブを開くと、ツールバーの右端にそのパースペクティブを示すボタンが追加表示されます。複数のパースペクティブを開けば、それらのボタンが表示されるわけです。このボタンをクリックすることで、パースペクティブを切り替えることができます。


図 3.3 15:一度パースペクティブを開くと、ウィンドウの右上にボタンが表示され、クリックで切り替えられるようになる。

ツールバーのボタンは、一度表示されるとSTSを終了した後もそのまま表示され続けるようになります。初めてパースペクティブを開くときはメニューを使い、以後はツールバーのボタンを利用して切り替える、というように使い分けると良いでしょう。

3.3.5 その他のパースペクティブを開く

<Open Perspective>にも表示されていない、その他のパースペクティブを使う場合は、Open Perspectiveダイアログを呼び出す必要があります。<Window>メニューの<Open Perspective>のサブメニューにある<Other…>メニューを選ぶか、ツールバー右端のパースペクティブボタンの左にあるアイコン(右上に「+」マークがついているもの)をクリックすると、画面にパースペクティブの一覧を表示したダイアログウィンドウが現れます。


図 3.3 16:メニューにはないパースペクティブは、<Other…>メニューを選ぶ。

ここから使いたいものを選んでOKすれば、そのパースペクティブを開くことができます。パースペクティブが変わると、<Open Perspective>のサブメニューに表示されるパースペクティブのメニュー項目も変わるため、「あったはずのパースペクティブが見つからない」といったことになりがちです。メニューにないパースペクティブの開き方は今のうちに覚えておきましょう。

図 3.3 17:ダイアログには、用意されているすべてのパースペクティブがリスト表示される。

3.3.6 ビルドツールとSpring Boot

Spring Bootは、STSを使わなくとも開発することができます。ただそれには、「Apache Maven」や「Gradle」といったビルドツールを使う必要があります。この2つは、いずれもJavaの世界で非常に幅広く利用されているビルドツールです。

STSは、先に挙げた「Maven」「Gradle」2つのビルドツールをサポートしており、これらビルドツールを利用した複雑な部分は綺麗に隠蔽され、意識する必要がほとんど無くなっています。
ですが、多少なりとも仕組みを知っておく必要はあるため、簡単に整理しておきましょう。

■Mavenの特徴

Mavenは、専用のXMLファイルを作成してビルド処理を記述します。XMLは、プログラミング言語のような複雑な処理ではなく、あくまでデータを構造的に記述していくだけのものなので、比較的わかりやすいといえます。ただ、Javaとはまるで違うコードの書き方を覚えないといけないので面倒、という人も多いかもしれません。また、「ゴール」と呼ばれる「目的の指定」で処理をまとめるため、手続きを書くのになれたプログラマにとっては概念がつかみにくい面もあるでしょう。

Mavenは、「リポジトリ」によってライブラリを管理します。中でも標準でサポートされている「セントラルリポジトリ」では、Javaの開発で用いられるほとんどのライブラリが用意されており、いつでもMaven経由でダウンロードして利用できます。これにより、「Mavenでビルド処理を書けば、どんなライブラリもすべて使える」という環境を構築できるようになりました。
このセントラルリポジトリは非常に強力で、Maven以外のビルドツールでも利用されています。

また、STSでは標準でMavenが組み込まれているため、特に何も設定しない場合は、Mavenベースでプロジェクトが作成されます。

■Gradleの特徴

Gradleは、Groovy(グルービー)によるビルドツールです。ビルドの情報や処理等はすべてGroovyによるスクリプトとして記述されます。これは、Groovyに慣れてしまえば、XMLのようにJavaとはまったく異なる言語を使うよりも、はるかにわかりやすいでしょう。

また、「タスク」を使い、実行する処理をそのままプログラミング言語で記述するため、Javaプログラマには非常に仕組みがわかりやすいのも確かです。Mavenと比べると、「なんでもJavaで書いたほうが楽」という人ほどGradleを使いやすく感じるはずです。
更に、Mavenのセントラルリポジトリを利用できるため、Mavenの膨大な資産を使ったビルド処理が作成できます。

NEXT>> 3.4 本章のまとめ