こんにちは!
情創 技術開発局の@TEBASAKIです。
桜は散りましたが、私の手羽は満開です。
今回もSpring Boot解説のほうを進めていきたいと思います。
第4回は「開発環境編:warファイル作成」です。
warファイル作成の理由
Spring Bootはビルドで作成したjarの中にTomcatが組み込まれており、
jar単独でもWebアプリケーションが動作します。
そして、サーバー環境でjarをサービスに登録し、
apacheと連携させる流れとなります。(他にも方法ありますが、割愛)
一つのTomcatで複数アプリケーションを管理したい場合、
Spring Bootでwarファイルを作成することができます。
今回はwarファイルの作成方法を解説します。
なお、今回使用するプログラムは第2回で使用したHelloWorldです。
1.プログラムの修正
エントリポイントのApplication.javaが、
SpringBootServletInitializerを継承するように修正します。
そして、設定クラスを認識させるために、
SpringApplicationBuilderメソッドを追加します。
/* 省略 */
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
/* 省略 */
/**
* Servletコンテナ起動時の設定クラス認識。
*
* <PRE>
* Servletコンテナで起動したときにどのクラスが設定クラスなのか認識させます。
* </PRE>
*
* @param SpringApplicationBuilder
* @return SpringApplicationBuilder
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
2.build.gradleの修正
apply plugin: 'war'を追加します。
また、dependenciesに以下の記述を追加することで、
組み込みのTomcatをwarファイルに含めないようにします。
// 省略
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'war'
// 省略
dependencies {
// 省略
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
}
3.warファイルの作成
いよいよwarファイルの作成に移りますが、その前にコンテキストパスの設定をします。
src/mainの下にresourcesフォルダを作成し、
その下にapplication.propertiesファイルを作成、以下のように記述します。
//例
server.context-path=/demo
以上を保存したら、右クリック→Gradle→すべてリフレッシュを選択して、
Gradleプロジェクトのリフレッシュを行います。
続いてプロジェクトを右クリック→Gradle→タスク・クイック・ランチャーを選択し、
「war」と記述してからEnterで実行します。
または、Gradleタスクタブでプロジェクトを選択し、warをダブルクリックして実行します。
このとき濃緑色のGradleタスクを使うことに注意しましょう。
(プロジェクトフォルダ)→build→libsにwarファイルが作成されていれば完了です。
4.Tomcatへのwarファイル配備
第1回で解説した通り、Tomcat8を使用します。
Tomcatのインストールについてはこちらを参照してください。
Configure TomcatからStartを押してTomcatを起動します。
※Startup typeがAutomaticになっているとTomcatが自動で起動してしまい、
Spring Bootの組み込みTomcatが起動できなくなってしまうので、
Manualにしておくことをおすすめします。
次にTomcat Managerを起動します。
ここでwarファイルを配備します。
配備方法は2通りありますが、今回は上の方法で配備します。
先ほどapplication.propertiesにコンテキストパスを設定しましたが、
Tomcatに配備する際はこちらで設定しなければなりません。
コンテキストパスに/demoを指定して、warファイルのパスを指定したら配備を押します。
下記のようにアプリケーション一覧に表示されたら配備完了です。
最後に http://localhost:8080/demo/ にアクセスして確認してみましょう。
下記のように表示されたらOKです。
今回はここまでです。
それではまたお会いしましょう!