前回の「Springとは」から続いて、Spring Bootについて書きます。
前回の記事は以下からどうぞ。
■ Springの問題点
Springには便利な機能が沢山あるため、それらを使えば開発がとても楽になります。ですが、Springには以下のような問題がありました。
問題1:各機能のインストールと設定
Springの機能を使うためには、Springの公式サイトでインストール方法と設定方法を調べる必要がありました。これらの設定はxmlファイルに記述する必要があり、xmlの書き方も学習しなければいけません。さらに、複数の機能を組み合わせる場合、その設定が複雑化していきます。
・問題2:アプリケーションサーバーのインストールや設定が必要
Webアプリケーションを動作させるためには、アプリケーションサーバー(以降、APサーバーと省略)が必要です。Javaでは、TomcatというオープンソースのAPサーバーがよく使われます。開発を始めるためには、開発者全員がAPサーバーのインストールや設定をしなければいけません。開発環境だけでなく、本番環境でもAPサーバーのインストールや設定が必要です。
これらの問題により、Springを使うためには最初の設定に時間がかかっていました。そこで登場したのがSpring Bootです。Spring Bootとは、Springを使ったアプリケーションを簡単に素早く開発するためのツールのような存在です。以前説明したフレームワークとは少し異なるため、フレームワークではなく、ツールのような存在としています。なお、Spring BootもSpringプロジェクトの1つであり、現在も開発が続けられています。
Spring Bootでは、「設定より規約」というソフトウェア設計の考え方が採用されています。「設定より規約」により、Springを使った開発をさらに効率化することができます。
■「設定より規約」とは
「設定より規約」には、大きく2つの便利な考え方があります。それが、”デフォルト設定の用意”と、”ソースコードの自動生成”です。
・デフォルト設定の用意
フレームワークを使うためには、色々な設定が必要です。ですが、プロジェクトが異なっても同じ設定をすることがあります。そこで、設定の手間を省くために、よく使われる設定をデフォルトで用意しています。このデフォルト設定が規約の1つです。ツールが用意した規約(デフォルト設定)とは異なる設定をしたい場合のみ、開発者は設定を変更します。
Spring Bootではプロジェクト作成時に、必要なフレームワークやライブラリを選択します。すると、Spring Bootがあらかじめ用意した設定が適用されます。プロパティファイルを編集すれば、簡単に設定変更もできます。
さらに、Spring BootでWebアプリケーション開発の機能を選択すると、APサーバーが自動で組み込まれます。デフォルトでは、TomcatがAPサーバーとして組み込まれます。そのため、APサーバーのインストールや設定を省略できます。
・ソースコードの自動生成
また、「設定より規約」では、規約に沿ったソースコードを書くことで、プログラムを自動生成してくれる機能もあります。以前説明したSpring Dataでは、メソッドを用意するだけで、クエリーを自動生成してくれる機能があると説明しました。
[CRUD操作のサンプル2] (再掲)
public interface EmployeeRepository implements CrudRepository<Employee, String> {
/** LastName(名字)で検索するメソッド */
public List<Employee> findByLastName(String lastName);
}
これは「findBy」の後に、検索のキーにしたい名称をメソッド名にしています。そういう規約がSpring Dataにはあるため、クエリーが自動生成されます。規約に沿っていない、複雑なクエリーを生成したいような場合は、クエリーを直接書くこともできます。
「設定より規約」では、規約に沿っていない場合のみ、設定変更やソースコードを書きます。これにより、開発者の負担がとても減ります。そして、本来やるべきことにもっと集中できるようになります。
Spring Bootを使うと、Springを使った開発で面倒な初期設定を省略できます。そのため、Javaの開発ではSpring Bootがよく使われています。
投稿のやる気につながるため、記事の内容が少しでも良いと思ったら、いいねやフォローしてくださいね。
参考)下記の書籍