Spring BootでServletWebServerFactory,TomcatServletWebServerFactoryクラスを使って組み込みTomcatの設定をクラスに記述する

Spring BootでServletWebServerFactory,TomcatServletWebServerFactoryクラスを使って組み込みTomcatの設定をクラスに記述する

Spring Bootではapplication.ymlで組み込みTomcatのポート変更やコンテキストルート変更をすることができます。

これを@Configurationアノテーションを使用してクラスで設定してみます。

設定
コンテキストルート /api/v2
ポート 8085
package jp.co.confrage;

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TestCustomizer {
  @Bean
  public ServletWebServerFactory serverSettings() {
    TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory("/api/v2", 8085);
    return factory;
  }
}

ただし、application.ymlにも記述した場合は、ymlの設定が優先されるようです。

application.ymlでコンテキストルートを指定する例です。

server:
  servlet:
    context-path: /api/v1

これで、http://localhost:8080/api/v1/リソース~となります。

jarファイルではなく別のTomcatにwarファイルとしてデプロイする場合はこのクラスで設定するかTomcat側のweb.xmlなどの設定ファイルを触る必要があります。

コメント

タイトルとURLをコピーしました