Spring Boot アプリケーションのビルドとデプロイ

Maven または Gradleを使用して、 CICS® で使用する Spring Boot アプリケーションをビルドできます。

WAR ファイルまたは JAR ファイルとしての Spring Boot アプリケーションのビルド

Spring Boot アプリケーションは、Web アプリケーション・アーカイブ (WAR) または Java™ アーカイブ (JAR) ファイルとしてビルドできます。 Spring Framework トランザクション管理または Spring Boot Security を CICSに統合する場合は、Spring ブート・アプリケーションを WAR としてビルドします。 表 1を参照してください。 WAR としてビルドされた場合、 Spring Boot アプリケーションは、他の CICS Liberty アプリケーションと同じ方法で CICS バンドルを使用してデプロイおよび管理できます。 JAR としてビルドした場合は、springBoot-1.5 フィーチャーまたは springBoot-2.0 フィーチャーをインストールする必要があるとともに、type="spring" 属性を持つ Liberty アプリケーション・エレメントを使用するか dropins ディレクトリーを使用してその JAR をデプロイする必要があります。 ただし、 CICS 統合を使用せずに CICS にデプロイするだけの既存のアプリケーションがある場合は、それを JAR としてパッケージ化することができます。 Liberty JVM サーバーに一度にデプロイできる JAR ファイルは 1 つだけですが、複数の WAR ファイルを共存させてホストすることができます。

表 1. Spring Boot 統合
機能 Spring Boot アプリケーションのビルド形式:
WAR JAR
CICS JCICS API はい はい
CICS Spring Bean へのリンク はい はい
Java Persistance API (JPA) はい いいえ
CICS はい いいえ
CICS はい いいえ
Java Database Connectivity (JDBC) はい いいえ
スレッド化と並行性 はい いいえ
Java Message Service (JMS) はい いいえ

以下の図は、 CICSで Spring Boot アプリケーションを実行するために使用できるさまざまなオプションを示しています。

CICSで Spring Boot アプリケーションを実行するために実行できるさまざまなオプション。

WAR のビルドに関する追加の注意事項

ビルドの前に、Spring Boot アプリケーションのパッケージ化タイプをデプロイ可能 WAR として設定する必要があります。 使用するメイン・アプリケーション・クラスは、SpringBootServletInitializer を継承して、configure メソッドをオーバーライドする必要があります。 また、Spring Boot 組み込み Web コンテナー (通常は Tomcat) をビルド・スクリプト内で提供済み (provided) 依存関係として宣言して、実行時にこの Web コンテナーを Liberty の Web コンテナーに置換できるようにする必要もあります。 この例では、必要に応じてアプリケーションをスタンドアロン JAR としてビルドすることもできるように、main メソッドが提供されています。
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer 
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) 
    {
        return application.sources(MyApplication.class);
    }

    public static void main(String[] args) 
    {
        SpringApplication.run(MyApplication.class, args);
    }
}

Gradle または Maven を使用してデプロイ可能 WAR ファイルを作成する方法について詳しくは、 Spring Boot 資料の Create a deployable WAR file を参照してください。

Maven および Gradleを使用したアプリケーションのビルドについて詳しくは、 Maven または Gradle を参照してください。