Spring Bootでプロジェクトのリクエストパスを確認する方法

Spring Bootのプロジェクトでは、以下の方法でリクエストのパスを参照できます。

  1. Spring Boot Actuatorを使う:Spring Boot ActuatorはSpring Bootアプリケーションの監視と管理に使うモジュールです。リクエストパスを含め、アプリケーションの様々な情報を公開するエンドポイント(/actuator)を提供します。下記の依存をpom.xmlファイルに追加することで使用できます:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

アプリケーションの設定ファイル(例: application.properties)でActuatorを有効にする。

management.endpoints.web.exposure.include=*

有効にしたら、http://localhost:8080/actuator/mappings にアクセスして、すべてのリクエストパスを確認できます。

  1. Spring BootのWebMvcConfigurerを使う:Spring Bootアプリにおいて、WebMvcConfigurerインターフェースを実装してリクエストパスをカスタマイズできます。構成クラスに@EnableWebMvcアノテーションを付与し、addViewControllersメソッドを実装します。
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("hello");
    }
}

上の例では、/path が hello というビューにマップされます。

  1. RequestMappingHandlerMappingを使用する:アプリ内の全コントローラーの要求パスをRequestMappingHandlerMappingで取得できます。コードでRequestMappingHandlerMappingを注入し、getHandlerMethodsメソッドを呼び出します。
@Autowired
private RequestMappingHandlerMapping handlerMapping;

public void printRequestMappings() {
    Map<RequestMappingInfo, HandlerMethod> handlerMethods = handlerMapping.getHandlerMethods();
    for (RequestMappingInfo info : handlerMethods.keySet()) {
        Set<String> patterns = info.getPatternsCondition().getPatterns();
        for (String pattern : patterns) {
            System.out.println(pattern);
        }
    }
}

コントローラーのすべてのリクエストパスは、printRequestMappingsメソッドを呼び出すことでプリントできます。

Spring Bootプロジェクトのリクエストパスを調べる一般的な3つの方法をご紹介しました。実際の流れに応じて、使用するメソッドを選択できます。

bannerAds