1.はじめに


Spring Boot

はhttps://en.wikipedia.org/wiki/Convention

over

configuration[configuration over configuration]フレームワークであり、これを使用して実稼働対応のセットアップをセットアップできます。

Tomcat

は、最も人気のあるJavaサーブレットコンテナの1つです。

デフォルトでは、Spring Bootはデスクトップアプリケーションとして実行することもシステムサービスとして設定することもできるスタンドアロンのJavaアプリケーションを構築しますが、新しいサービスをインストールしたりアプリケーションを手動で実行できない環境もあります。

スタンドアロンアプリケーションとは反対に、Tomcatは同じアプリケーションプロセス内で複数のアプリケーションを管理できるサービスとしてインストールされ、各アプリケーションに特定の設定をする必要がありません。

このガイドでは、簡単なSpring Bootアプリケーションを作成し、それをTomcat内で動作するように調整します。

2. Spring Bootアプリケーションの設定

利用可能なスターターテンプレートの1つを使用して、シンプルなSpring Boot Webアプリケーションをセットアップします。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
    <relativePath/>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

  • Spring Bootはデフォルトの設定を処理するので、標準の@ @ SpringBootApplication__以外に追加の設定は必要ありません。

有効なコンテンツを返すための単純なREST EndPointを追加します。

@RestController
public class TomcatController {

    @GetMapping("/hello")
    public Collection<String> sayHello() {
        return IntStream.range(0, 10)
          .mapToObj(i -> "Hello number " + i)
          .collect(Collectors.toList());
    }
}

それでは、

mvn spring-boot:run

を使用してアプリケーションを実行し、


http://localhost:8080/hello


でブラウザを起動して結果を確認しましょう。

3. Spring Boot WARの作成

サーブレットコンテナは、アプリケーションがいくつかの契約を満たすことが期待されています。 Tomcatの場合、この契約はhttps://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html[Servlet API 3.0]です。

私たちのアプリケーションがこの契約を満たすようにするために、私たちはソースコードにいくつかの小さな修正を行わなければなりません。

まず、JARの代わりにWARアプリケーションをパッケージ化する必要があります。このために、

pom.xml

を次の内容に変更します。

<packaging>war</packaging>

それでは、最後の

WAR

ファイル名を変更してバージョン番号を含めないようにしましょう。

<build>
    <finalName>${artifactId}</finalName>
    ...
</build>

それでは、Tomcatの依存関係を追加します。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope>
</dependency>

最後に、

SpringBootServletInitializer

インターフェース____を実装することによって、Tomcatに必要なサーブレットコンテキストを初期化します。

@SpringBootApplication
public class SpringBootTomcatApplication extends SpringBootServletInitializer {
}

Tomcatにデプロイ可能なWARアプリケーションを構築するために、

vvクリーンパッケージを実行します。その後、WARファイルが

target/spring-boot-tomcat.war

に生成されます(Maven

artifactId__が“ spring-boot-tomcat”であると仮定して)。

この新しい設定により、Spring Bootアプリケーションは非スタンドアロンアプリケーションになります(再度スタンドアロンモードで動作させる場合は、Tomcat依存関係から

provided

スコープを削除してください)。

4. TomcatへのWARのデプロイ

WARファイルをTomcatにデプロイして実行するには、次の手順を完了する必要があります。

Apache Tomcat]それを

tomcat

フォルダに解凍します。
。 WARファイルを

target/spring-boot-tomcat.war

から次のディレクトリにコピーします。


tomcat/webapps/

フォルダ
。端末から

tomcat/bin

フォルダに移動して実行します。


  1. catalina.bat run

    (Windowsの場合)


  2. catalina.sh run

    (Unixベースのシステム上)



    1. http://localhost:8080/spring-boot-tomcat/hello


      にアクセスしてください.

これは簡単なTomcatの設定でした。完全な設定ガイドについては、/tomcat[Tomcatのインストール]のリンクのガイドを確認してください。リンクの追加の方法もあります:/tomcat-deploy-war[WARファイルをTomcatにデプロイする]。

5.まとめ

この短いガイドでは、簡単なSpring Bootアプリケーションを作成し、それをTomcatサーバーにデプロイ可能な有効なWARアプリケーションに変えました。

いつものように、例の完全なソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-boot-ops[over on GitHub]から入手可能です。